Rails控制台默认环境

时间:2012-05-29 09:47:38

标签: ruby-on-rails ruby capistrano ruby-on-rails-3.2 rvm-capistrano

在我的开发机器上:

$ 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不应该加载生产环境而不是开发环境?如果没有,为什么不呢?

2 个答案:

答案 0 :(得分:21)

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

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

答案 1 :(得分:5)

RAILS_ENV是一个变量,它总是默认为开发

如果你愿意,你可以随时打开'〜/ .bash_profile'在生产服务器上添加:

 alias sc="bundle exec rails console production"

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