1

私の Rails アプリでは、外部エンジンをマウントしています。に がありbefore_filterApplicationControllerエンジンのアクションの一部をこのフィルタから除外する必要があります。

通常、skip_before_filterそれぞれのコントローラーで使用しますが、エンジン コード自体は私のものではないため、触れたくありません。

これを行う方法はありますか?

class ApplicationController < ActionController::Base

  before_filter :authorize, :except => [:engine/setup] # something like this?
  ...

ありがとう、

PJ

4

3 に答える 3

5

orien の回答に追加するには、エンジン内の特定のコントローラーを指定するか、次のように指定する必要がありますApplicationController

EngineController::ApplicationController.class_eval do
  skip_before_filter :authorize, :only => [:setup]
end

また、開発モードでリクエストごとにフィルター スキップをリロードする場合は、次のようにします。

Rails.application.config.to_prepare do
  EngineController::ApplicationController.class_eval do
    skip_before_filter :authorize, :only => [:setup]
  end
end
于 2014-06-13T01:42:10.037 に答える