1

我没有在标题中正确地表达这个问题,但这是我想做的。

我有一个方法,像这样:

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

我希望我的应用程序中有 5 个不同的模型在他们的 after_create 回调中调用这个函数。

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

在这个模型(上图)中是否有一种方法可以保存该方法 - 远程使用其他模型的回调?

或者任何人都可以建议一种不同的方式我应该接近这样的事情吗?

4

1 回答 1

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
于 2012-07-15T01:57:08.750 回答