Я вижу странное поведение при запуске сервера Rails с rails s -e [env]
(добавлено двойное ** для акцента):
~/app> rails s -e=**production**# << ok...v
=> Booting Mongrel # v huh?
=> Rails 3.1.1 application starting in **test** on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
^CExiting
~/app> rails s -e=**development**
=> Booting Mongrel
=> Rails 3.1.1 application starting in **test** on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
^CExiting
~/app> RAILS_ENV=**development** rails s
=> Booting Mongrel
=> Rails 3.1.1 application starting in **development** on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
^CExiting
~/app> RAILS_ENV=**production** rails s
=> Booting Mongrel
=> Rails 3.1.1 application starting in **production** on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
В результате переключатель -e
игнорируется.
В руководстве Rails не упоминаются ситуации, когда оно будет переопределено. Справка командной строки говорит -e Specifies the environment to run this server under test/development/production).
ОК.
Я действительно думаю, что это работало нормально несколько недель назад (прошло некоторое время с тех пор, как я запустил prod-сервер на этой коробке), поэтому я мог изменить что-то, что сломало это, но что? Я проверил места, где я использовал =
вместо ==
, но не нашел ни одного. Не думайте , что бы это объяснить.
Обновление: Джон правильно указывает, что это -e [env]
. Я попробовал это сначала с теми же результатами, затем попытался -e=[env]
. Правильный путь (все еще дает неправильный результат):
~/app> rails s -e production -p 5000
=> Booting Mongrel ^^^^^^^^^ vvvv
=> Rails 3.1.1 application starting in test on http://0.0.0.0:5000
=> Call with -d to detach
=> Ctrl-C to shutdown server