是什么导致`rails s`忽略-e开关?

时间:2012-02-03 21:17:56

标签: ruby-on-rails ruby-on-rails-3

当我使用rails s -e [env]运行Rails服务器时,我看到了一些奇怪的行为(为了强调而添加了双**):

~/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 guide未提及任何会被覆盖的情况。命令行帮助说-e Specifies the environment to run this server under test/development/production).好的。

我真的认为这几周前工作正常(自从我在那个盒子上开始生产服务器以来已经有一段时间了)所以我可能已经改变了打破这个的东西,但是什么?我检查过我使用的地方=而不是==,但没找到任何地方。不要思考来解释这一点。

更新:约翰正确地指出它是-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

2 个答案:

答案 0 :(得分:1)

检查您是否设置了RAILS_ENV环境变量,因为它将覆盖您作为命令行选项传递的任何内容。

rails source的相关位是这个

ENV["RAILS_ENV"] ||= options[:environment]
从命令行参数填充

options,因此如果已设置RAILS_ENV,则命令行选项无效。

答案 1 :(得分:0)

它是rails s -e <env>,而不是rails s -e=<env>。注意-e与环境名称之间的空格:

#Ψ rails s -e production
#=> Booting WEBrick                     vvvvvvvvvv
#=> Rails 3.1.1 application starting in production on http://0.0.0.0:3000
                                        ^^^^^^^^^^
#Ψ rails s -e staging
#=> Booting WEBrick                     vvvvvvv
#=> Rails 3.1.1 application starting in staging on http://0.0.0.0:3000
                                        ^^^^^^^