在我的开发机器上:
$ 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
不应该加载生产环境而不是开发环境?如果没有,为什么不呢?
答案 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
即可加载控制台。