Как заставить 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 Таким образом, когда он попытается выполнить сброс позже, он потерпит неудачу.
Я не уверен, какие другие последствия это будет иметь позже или будет ли оно распространяться повсюду в рельсах.