web-dev-qa-db-ja.com

Railsが実稼働中かどうかを確認する方法は?

script/server -e productionを使用して、Rails本稼働モードで起動しました。エラーは発生しませんでした。しかし、本稼動モードであるかどうかを確認するにはどうすればよいですか? 、および開発で行った同様のエラーページが表示されました。

実稼働モデルでは、/ publicフォルダーにある404エラーページが表示されると考えました。

実稼働モードで起動しなかったということですか?

ご協力いただきありがとうございます。

81
sent-hil

2つの簡単な方法:

tail -f log/production.log

アプリにアクセスした後にそのログに入力されているエントリがある場合は、本番モードです。

2番目の方法:

ビューの1つ(おそらくレイアウトが良い)で、追加するだけ

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

そして、それはあなたが実行している環境を示します。

編集

リクエストが「ローカル」(ローカルホストまたは127.0.0.1から)であると見なされる場合、どの環境でも実際のエラーページの代わりにデフォルトの例外ページが表示されます。これをApplicationControllerに追加することでオーバーライドできます

def local_request?
  false
end

このメソッドは、ドキュメントの api にあります。

33
Dan McNevin

Rails 3.1+、Rails.env.production?は、運用中にtrueを返します。

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

最新のRailsバージョン(3 +)、Rails.envは、環境をStringとして返します。

Rails.env #=> "production"

Booleanを返す各環境に役立つアクセサーもあります。

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

コマンドラインで「Rails console」と入力し、次に「Rails.env」と入力します。

8

Railsサーバーを再起動し、コマンドラインの2行目を読むと、はるかに簡単になりました。

ランニング Rails s -e production出力:

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

この例にはWebrickがありましたが、サーバーを変更すると名前に置き換わる方法を理解していない人もいました。明確にするために更新されました。

3
bkunzi01