Как заставить RAILS_ENV = разработку из среды environment.rb или инициализаторов? - PullRequest
4 голосов
/ 16 декабря 2009

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

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

#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 ]

6 голосов
/ 16 декабря 2009

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

RAILS_ENV = 'development'

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

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

RailsEnv development
5 голосов
/ 16 декабря 2009

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

2 голосов
/ 16 декабря 2009

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

RAILS_ENV="production"
RAILS_ENV.freeze

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

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

1 голос
/ 12 февраля 2013

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

0 голосов
/ 28 сентября 2015

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

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

...