Как я могу определить среду при перезапуске приложения Rails из командной строки?

#ruby-on-rails

#ruby-on-rails

Вопрос:

Как я могу определить среду при перезапуске приложения Rails из командной строки?

Ответ №1:

если вы имели в виду, как указать rails, какую среду загружать при запуске сервера из командной строки, вот как:

 rails server -e production
  

Комментарии:

1. Это тоже работает. Хорошая особенность использования переменной оболочки заключается в том, что она работает с некоторыми типами команд, с которыми -e нельзя использовать.

2. Я предпочитаю этот метод настройке RAILS_ENV, поскольку я склонен забывать, что для env у меня установлено значение production. Большую часть времени я все равно хочу работать в процессе разработки.

3. Проблема, с которой я столкнулся, была большой глупостью; я использовал RAILS_ENV и хотел напечатать некоторый текст только в среде разработки. Вместо того, чтобы написать ‘if RAILS_ENV == «разработка»‘, я написал ‘if RAILS_ENV = «разработка» и фактически запустил производственную среду как development! Я тупица. Спасибо за вашу помощь здесь.

4. возможно ли сделать то же самое, но передать любую другую переменную среды вместо ее статической установки в файле *.rb?

Ответ №2:

В общем случае Rails получает свое окружение из переменной оболочки RAILS_ENV при запуске или по умолчанию имеет значение «разработка». Вы можете указать среду для команды rails, такой как rails server , rails console (Rails 3), script/server или script/console (Rails 2.x) из командной строки bash следующим образом…

 RAILS_ENV=something rails s
  

Это означает, что для выполнения RAILS_ENV команды необходимо установить для rails s переменной окружения значение «something».