Rails控制台默认环境

15

在我的开发机上:

$ bundle exec rails console
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "development"

这是预期的结果。目前为止还好。

然而,在我的生产服务器上(我使用Capistrano部署到该服务器),我得到完全相同的结果:

$ bundle exec rails console
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "development"

在任意一台机器上,我可以选择这样做:

$ bundle exec rails console production
Loading development environment (Rails 3.2.3)
1.9.3p194 :001 > Rails.env
 => "production"

我的问题是:在生产服务器上,bundle exec rails console 默认不应该加载生产环境而不是开发环境吗?如果不能,为什么不行?


谢谢。这回答了我的问题,关于如何将Rails控制台运行为生产环境。它不遵循与rails server -e production相同的模式。 - erroric
2个回答

23

rails可执行文件无法确定应该在哪台机器上运行哪个环境。

你可以将export RAILS_ENV=production放入想要使用控制台的用户的~/.bashrc~/.bash_profile文件中。


5

RAILS_ENV是一个像其他变量一样的变量,默认情况下总是默认为开发环境

如果您愿意,在生产服务器上可以打开“〜/ .bash_profile”并添加以下内容:

 alias sc="bundle exec rails console production"

然后运行source ~/.bash_profile以重新加载该文件到终端会话,并且您只需调用sc即可加载控制台。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接