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 に答える