远程模型回调 - rails 3?

时间:2012-07-15 01:33:52

标签: ruby-on-rails ruby ruby-on-rails-3

我不是在标题中正确地表达了这个问题,而是我想做的事情。

我有一个方法,如:

class User < ActiveRecord::Base
   def myMethod(abc, xyz)
     #do stuff
   end
end

我想在我的应用程序中使用5个不同的模型在其after_create回调上调用此函数。

在每个模型中放置一个函数来调用此函数似乎非常反DRY。

这个模型(上面)中有没有办法保存方法 - 远程使用其他模型的回调?

或者任何人都可以提出一种不同的方式来接近这样的事情吗?

1 个答案:

答案 0 :(得分:3)

这就是我要做的事情:

创建一个模块:

module MyCallbacks

    extend ActiveSupport::Concern

    included do
        after_create :my_method
    end

    def my_method
        #do stuff
    end

end

然后,您只需将此模块包含在您选择的模型中:

class MyModel < ActiveRecord::Base
    include MyCallbacks
end