Rails Observer 内に含まれるモジュールがあります。
目的は次のとおりです。
- 呼び出して
after_save
、after_update
という名前のメソッドcheck_integrity
- Observer で定義されている場合は、 or/and
check_integrity
の最後で呼び出します。after_save
after_update
つまり、常に呼び出す必要がありますcheck_integrity
。
次のコードのようなものを試しました。
module IntegrityObserver
extend ActiveSupport::Concern
included do
alias_method_chain :after_save, :check_integrity
alias_method_chain :after_update, :check_integrity
end
def check_integrity
# do something
end
end
class UserObserver < ActiveRecord::Observer
include IntegrityObserver
def after_save(object)
# do something
end
end
しかし、それはエラーを発生させます:activesupport-3.0.17/lib/active_support/core_ext/module/aliasing.rb:31:in alias_method': undefined method after_update' for class TaskObserver' (NameError)
誰かが私がやりたいことをする方法を知っていますか?
ありがとう!