#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».