當用塊定義before_filter時,是否可以在使用skip_before_filter
時跳過前一個篩選器。例如:跳過用塊定義的before_filter
class ApplicationController < ActionController::Base
before_filter do |controller|
# filter stuff
end
end
我知道,這是有可能使用「正常」的方式來定義過濾器的方法名稱。
當用塊定義before_filter時,是否可以在使用skip_before_filter
時跳過前一個篩選器。例如:跳過用塊定義的before_filter
class ApplicationController < ActionController::Base
before_filter do |controller|
# filter stuff
end
end
我知道,這是有可能使用「正常」的方式來定義過濾器的方法名稱。
它絕對不可能。從文檔:
注意,跳繩使用Ruby的平等,因此,使用#skip_filter
http://apidock.com/rails/AbstractController/Callbacks/ClassMethods/skip_action_callback
我居然找到解決的辦法,這是不可能跳過使用匿名PROC定義回調在方法中使用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
或者你可以使用:除非=> inherited_controller? def inherited_controller? self.class!= ApplicationController end –
不這樣認爲,它移動到一個方法 – apneadiving