2016-10-18 4 views
0

でbefore_actionの一部を除き、だから私は、コントローラを持っているアクセスは、コントローラ自体

class RandomActionController < ApplicationController 

を言うと、私は今では私が

before_action :check_authorization, except: [:create, :get_actions, ..] 

としてRandomActionControllerに使用ApplicationControllerのメソッドcheck_authorizationを持っていますRandomActionController内の別のアクション、exceptセクションのものを除いて、check_authorizationなどのアクションの配列を作成している可能性があります。私の問題は、どのようにハッシュ/配列または他のフォームとしてこれらのアクションを取得するのですか?

+1

をメソッド/定数に入れて2回使用します。唯一の方法 –

答えて

1

except部分に渡すものは、リテラル配列、文字列またはシンボルです。 Railsは、(afaik)コントローラコールバックをイントロスペクトして、宣言された引数を抽出することはできません。

アクションのリストを再利用できるようにするには、そのアクションを識別子にリンクする必要があります。例えば

私は頻繁に使用するこのパターン:

class ApplicationController 

    private 

    def self.member_actions 
    [:show, :edit, :destroy, :update] 
    end 

    def self.collection_actions 
    [:new, :index, :create] 
    end 
end 

class FooController < ApplicationController 
    before_action :set_foo, only: member_actions 

    def self.member_actions 
    super + [:fuzzle, :wuzzle] 
    end 
end 

しかし、あなたはちょうど同様に定数やクラスのコンテキストで提供されて何かを使用することができます。

+0

ありがとう。それは私のために働くでしょう。 –

関連する問題