我有一个包含在 Rails Observer 中的模块。
目的是:
- 调用
after_save
和after_update
一个名为的方法check_integrity
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)
有人知道我怎么能做我想做的事吗?
谢谢!