Как заставить RAILS_ENV = разрабатывать из среды environment.rb или инициализаторы?

Наш хост не позволяет нам изменять файл конфигурации пассажира (то есть конфигурацию apache или файл vhosts), но мы хотели бы запустить рельсы в режиме dev. Поэтому мы должны указать среду (prod/dev/test) в одном из файлов, загружаемых рельсами, когда приложение перезапускается. Кто-нибудь знает, как это сделать?

Мы пробовали следующее без везения:

#environment.rb (before any other code is executed)
  `RAILS_ENV=development`          # using back ticks
  ENV['RAILS_ENV'] = 'development' # assigning to a constant
  RAILS_ENV='development'          # as suggested by one of the answers, unfortunately does not work.

Ответ 1

Почему бы вам не изменить конфигурацию production.rb в соответствии с настройками, найденными в development.rb?

Ответ 2

Установка его в верхней части environment.rb с помощью:

RAILS_ENV = 'development'

должен это сделать. Возможно, пассажир это переопределяет.

Если у вас нет доступа к конфигурации пассажира, но у вас есть доступ к вашим виртуальным хостам, вы также можете просто заставить его там:

RailsEnv development

Ответ 3

В envriornment.rb вы можете добавить:

RAILS_ENV="production"
RAILS_ENV.freeze

Таким образом, когда он попытается получить reset позже, он потерпит неудачу.

Я не уверен, какие другие последствия это произойдет позже или если он пронизывает всюду в пределах рельсов.

Ответ 4

Вместо установки ENV["RAILS_ENV"] в environment.rb сделайте это в boot.rb. Подробнее см. здесь.

Ответ 5

RAILS_ENV = "производство" RAILS_ENV.freeze/ENV Таким образом, когда он попытается получить reset позже, он потерпит неудачу.

Я не уверен, какие другие последствия это произойдет позже или если он пронизывает всюду в пределах рельсов.