访问控制器本身的before_action的except部分

时间:2016-10-18 08:41:51

标签: ruby-on-rails action controllers

所以我有一个控制器,比如说

class RandomActionController < ApplicationController

我在check_authorization中使用ApplicationController中的方法RandomActionController,我在before_action :check_authorization, except: [:create, :get_actions, ..] 中使用

RandomActionController

现在在except内的另一个操作中,我可能正在构建一系列操作,不包括check_authorization core.editor部分中的操作。我的问题是,如何将这些操作作为哈希/数组或任何其他形式?

1 个答案:

答案 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

但您也可以使用常量或类上下文中可用的任何其他内容。