Rails metaprogrammin在过滤之前添加

时间:2011-10-12 11:16:13

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

是否可以在使用元编程之前添加一些过滤器,所以从一些扩展我的控制器的模块? 最好的方法是指定它应该应用的现有的一个,或者只是在所有过滤器之前添加它

2 个答案:

答案 0 :(得分:2)

你的意思是这样吗?

module SomeMixin
  def self.included(clazz)
    clazz.class_exec do
      before_filter :filter_method
    end
  end

  def filter_method
    # some filter
  end
end

答案 1 :(得分:0)

欢呼声,同时发现非常相似的解决方案

def self.included(base)
  base.send :before_filter, :some_authorize, :only => :destroy
end

protected

def some_authorize
  authorize! :delete, @current_project
end