所以我有一个控制器,比如说
class RandomActionController < ApplicationController
我在check_authorization
中使用ApplicationController
中的方法RandomActionController
,我在before_action :check_authorization, except: [:create, :get_actions, ..]
中使用
RandomActionController
现在在except
内的另一个操作中,我可能正在构建一系列操作,不包括check_authorization
core.editor
部分中的操作。我的问题是,如何将这些操作作为哈希/数组或任何其他形式?
答案 0 :(得分: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
但您也可以使用常量或类上下文中可用的任何其他内容。