How to tell if rails is in production?

99封情书 提交于 2019-12-18 10:19:26

问题


I used script/server -e production to start rails in production mode. It did and I got no errors. However how do I tell if it is in production mode? I tried a non-existent route, and I got a similar error page I did in development.

I thought if under production model, I get the 404 error page that is in my /public folder.

Does it mean it didn't start in production mode?

Thanks for your help.


回答1:


2 easy ways:

tail -f log/production.log

if there are entries populating that log after you hit the app, you're in production mode.

second way:

in one of your views (probably the layout is good), just add

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

And that will show you what the environment that you're running in.

edit

You will see the default exception page instead of the actual error pages on any environment if the request is considered "local" (that is from localhost or 127.0.0.1), you can override this by adding this to your ApplicationController

def local_request?
  false
end

You can find this method in the docs in the api




回答2:


If its Rails 3.1+, Rails.env.production? will return true when in production.

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



回答3:


For modern Rails versions (3+), Rails.env returns the environment as a String:

Rails.env #=> "production"

There are also helpful accessors for each environment that will return a Boolean:

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



回答4:


On your command line type rails console, then Rails.env.




回答5:


I found it much easier to just restart the rails server and read the second line on the command line:

Running rails s -e production outputs:

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

Had Webrick in the example but some people didn't understand how changing servers would just substitute the name. Updated for clarity.




回答6:


command line alternative

$echo $RAILS_ENV



来源:https://stackoverflow.com/questions/1967809/how-to-tell-if-rails-is-in-production

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!