你可以在Rails模块中包含前后过滤器吗?

时间:2010-07-26 18:51:13

标签: ruby-on-rails

我想为两个模型添加一个方法,所以我制作了一个这样的模块并将其包含在两个模型中。

module UserReputation
  def check_something
    ...
  end
end

工作得很好。然后我希望在所有这些模型上将该方法称为:after_create。如果我手动将它添加到所有模型,它可以工作,但我想要聪明并将其包含在模块中,如下所示:

module UserReputation
  after_create :check_something
  def check_something
    ...
  end
end

但这不起作用。有没有办法实现这一点并干掉after_create?

1 个答案:

答案 0 :(得分:11)

尝试self.included,当模块混合到类base中时调用它:

module UserReputation
  def self.included(base)
    base.after_create :check_something
  end
end