Где находится Rails.env? - PullRequest
       12

Где находится Rails.env?

0 голосов
/ 24 сентября 2018

На моем сервере внутри /etc/nginx/sites-available/appname у меня установлены passenger_enabled on; и rails_env production;.По какой-то причине, когда я запускаю rails r, "ставит Rails.env", он выкладывается в разработку.Я искал в своем приложении настройку enils, но нигде не вижу.Я надеюсь, что кто-то может подсказать мне, почему настройка внутри конфигурации имени приложения nginx переопределяется при разработке.

Версии:

nginx / 1.14.0

Rails 4.2.6

РЕДАКТИРОВАТЬ: Конфигурация пассажирского сервера:

server {
  listen 443;
  ssl on;
  ssl_certificate     /path/to/appname/fullchain.pem;
  ssl_certificate_key /path/to/appname/privkey.pem;
  ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers "lkajsdflkjsalfkdjlsaf";
  ssl_prefer_server_ciphers on;
  client_max_body_size 32000M;
  server_name    domain.com;
  root /home/ubuntu/www/public;   # <--- be sure to point to 'public'!
  passenger_enabled on;
  rails_env production;
}

Ответы [ 3 ]

0 голосов
/ 24 сентября 2018

вам нужно указать rails среду, используя RAILS_ENV = production после команды, которую вы хотите запустить.

, если вы хотите запустить rails console для производственной среды, используйте

rails console RAILS_ENV=production
rails server RAILS_ENV=production
0 голосов
/ 24 сентября 2018

Когда пассажир загружает ваше приложение, оно переопределяет ваши локальные настройки среды на то, что вы установили с помощью rails_env.См. https://www.phusionpassenger.com/library/config/nginx/reference/#passenger_app_env, в котором указано

Этот параметр устанавливает для текущего приложения значение следующих переменных среды:

RAILS_ENV
RACK_ENV
WSGI_ENV
NODE_ENV
PASSENGER_APP_ENV

Когда.вы запускаете 'rails r' в командной строке, которая ищет настройку RAILS_ENV, как указано в других ответах, которая полностью отделена от настроек nginx / passenger.Попробуйте добавить что-то вроде

<%= Rails.env %>

в виде и посмотреть на ваше приложение в работе.Вы должны увидеть, что это действительно рабочий продукт, хотя вы можете свободно использовать любую среду, которую захотите, когда используете команду CLI rails, которая по умолчанию используется для разработки.

0 голосов
/ 24 сентября 2018

RAILS_ENV по умолчанию установлено на development.

Если вам необходимо переопределить его, используйте переменную окружения RAILS_ENV.Попробуйте это:

RAILS_ENV=production rails r "puts Rails.env"

doc: https://guides.rubyonrails.org/configuring.html#rails-environment-settings

...