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

Наш хост не позволяет нам изменять файл конфигурации пассажира (т.е. конфигурацию apache ИЛИ файл vhosts), но мы бы хотели запустить rails в режиме 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.

5 ответов

Решение

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

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

RAILS_ENV = 'development'

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

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

RailsEnv development

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

RAILS_ENV="production"
RAILS_ENV.freeze

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

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

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

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

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

Другие вопросы по тегам