如何判断导轨是否在生产中?

时间:2009-12-28 03:05:05

标签: ruby-on-rails development-environment production-environment

我使用script/server -e production在生产模式下启动rails。它确实没有错误。但是,如何判断它是否处于生产模式?我尝试了一条不存在的路由,我在开发过程中遇到了类似的错误页面。

我想如果在生产模型下,我得到了我/ public文件夹中的404错误页面。

这是否意味着它没有以生产模式启动?

感谢您的帮助。

6 个答案:

答案 0 :(得分:217)

如果其Rails 3.1 +,Rails.env.production?在投放时会返回true

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

答案 1 :(得分:32)

2种简单方法:

tail -f log/production.log

如果在点击应用程序后存在填充该日志的条目,则表示您处于生产模式。

第二种方式:

在你的一个视图中(可能布局很好),只需添加

<%= "Environment: #{RAILS_ENV}" %>

这将向您展示您正在运行的环境。

修改

如果请求被视为“本地”(即来自localhost或127.0.0.1),您将在任何环境中看到默认的异常页面而不是实际的错误页面,您可以通过将此添加到{{1 }}

ApplicationController

您可以在api

的文档中找到此方法

答案 2 :(得分:23)

对于现代Rails版本(3 +),Rails.env将环境作为String返回:

Rails.env #=> "production"

每个环境都有一些有用的访问者会返回Boolean

Rails.env.production?  #=> true  
Rails.env.staging?     #=> false
Rails.env.development? #=> false  

答案 3 :(得分:8)

在命令行上输入rails console,然后输入Rails.env

答案 4 :(得分:3)

我发现重新启动rails服务器并在命令行上读取第二行更容易:

运行rails s -e production输出:

=> Booting Puma
=> Rails 4.2.4 application starting in `production` on http://localhost:3000

在示例中有Webrick,但有些人不明白更改服务器如何替换名称。为清晰起见,已更新。

答案 5 :(得分:-1)

命令行替代

$ echo $ RAILS_ENV