跳过使用块定义的before_filter

时间:2013-09-26 07:00:20

标签: ruby-on-rails ruby-on-rails-3.2 before-filter

当使用块定义before_filter时,是否可以跳过使用skip_before_filter的前置过滤器。例如:

class ApplicationController < ActionController::Base
  before_filter do |controller|
    # filter stuff
  end
end

我知道,可以使用“正常”方式使用方法名称定义过滤器。

2 个答案:

答案 0 :(得分:2)

绝对不可能。来自文档:

  

请注意,跳过使用Ruby相等,因此使用#skip_filter

跳过使用匿名过程定义的回调是不可能的

http://apidock.com/rails/AbstractController/Callbacks/ClassMethods/skip_action_callback

答案 1 :(得分:2)

我实际上找到了一种解决方法,使用带有方法的if选项。使用

class ApplicationController < ActionController::Base
  before_filter(:if => :use_filter?) do |controller|
    # filter stuff
  end

  private

  def use_filter?
    true
  end
end

class OtherController < ApplicationController
  private

  def use_filter?
    false
  end
end

:d