2012-04-02 20 views
0

"config.consider_all_requests_local"フラグを使用して、本番モードのときにのみ動的エラーページを生成しようとしています。コントローラーから設定フラグ(config/environments/development.rbから設定)にアクセスする方法は?

私は次のコードで設定/環境/ development.rbファイルを設定しました:

config.consider_all_requests_local  = true 

アプリ/コントローラ/ application_controller.rb内部

私はこの行を追加しました。 (と:render_error、:私は以下含まれていませんでしたrender_not_found方法)

unless config.consider_all_requests_local 
     rescue_from Exception, :with => :render_error 
     rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found 
     rescue_from ActionController::RoutingError, :with => :render_not_found 
     rescue_from ActionController::UnknownController, :with => :render_not_found 
end 

とにかくapplication_controller.rbの内側に、フラグは常に偽であると思われます。 unless節は常に呼び出されます。 config/environments/development.rbファイルのためにフラグが自動的にtrueに設定されていると仮定して、これを理解しようとしています。

私は、except節のすぐ上のフラグ宣言を追加してテストしました。これは、unless節が呼び出されるかどうかに影響するようです。だから私は、フラグがconfig/environments/development.rbの中に設定されていないか、app/controllers/application_controller.rbの中から見えないと推測しています。

誰でも問題が分かっていますか?ありがとう!

答えて

2

configオブジェクトは、* /環境にいう。Rbは

Rails.application.config 
によってアクセス可能です
関連する問題