How to tell if rails is in production?

后端 未结 6 1773
眼角桃花
眼角桃花 2020-12-23 11:20

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 n

相关标签:
6条回答
  • 2020-12-23 11:21

    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  
    
    0 讨论(0)
  • 2020-12-23 11:25

    command line alternative

    $echo $RAILS_ENV

    0 讨论(0)
  • 2020-12-23 11:28

    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

    0 讨论(0)
  • 2020-12-23 11:32

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

    0 讨论(0)
  • 2020-12-23 11:36

    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  
    
    0 讨论(0)
  • 2020-12-23 11:45

    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.

    0 讨论(0)
提交回复
热议问题