2016-12-22 6 views
1

エンジンにRails.application.config.action_dispatch.rescue_responsesに追加しようとしている2つのカスタム例外があります。Railsエンジンでrescue_responsesに追加していますか?

config.action_dispatch.rescue_responses.merge!({ 
    'Exceptions::Unauthorized' => :unauthorized, 
    'Exceptions::Forbidden' => :forbidden 
}) 

上記は、アプリケーションで正常に動作しますが、私はエンジン内の初期化子でそれを置くとき:

Rails.application.config.action_dispatch.rescue_responses.merge!({ 
    'Exceptions::Unauthorized' => :unauthorized, 
    'Exceptions::Forbidden' => :forbidden 
}) 

それは無視されます。 Railsがrescue_responsesを設定する前にエンジンのイニシャライザが実行されているので、私は推測していますか?私は何が違うのでしょうか?

答えて

0

config.action_dispatch.rescue_responses値が一時的にのみ使用されます。 https://github.com/rails/rails/blob/4-2-stable/activerecord/lib/active_record/railtie.rb#L25

:あなたは https://github.com/rails/rails/blob/4-2-stable/actionpack/lib/action_dispatch/railtie.rb#L36で見れば、それはあなたが、例えばActiveRecordを見れば、彼らは Railtieファイルに設定

:-(任意の初期化スクリプトの前に評価された初期化子ブロックでActionDispatch::ExceptionWrapper.rescue_responses、にマージされています

関連する問題