我有一個包含在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)
有人有任何想法我怎麼做我想要什麼?
謝謝!
是'包括CacheObserver'行意在'包括IntegrityObserver'? TaskObserver到哪裏去了?在'after_save'定義之後包含模塊*是否有幫助? – x1a4
謝謝我修復了@ x1a4,包括after_save會工作但不是當方法未定義時 – jrichardlai