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

4

2 回答 2

23

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

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

于 2012-05-29T09:58:57.863 回答
5

RAILS_ENV 和其他变量一样,始终默认为开发变量

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

 alias sc="bundle exec rails console production"

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

于 2012-05-29T09:57:02.807 回答