rna*_*aud 5 observer-pattern ruby-on-rails-3
我有观察员设立奖励模型更改的徽章.它在我使用视图时有效,但是当我从控制台或种子文件中执行以下操作时,我似乎没有触发:Photo.create(:user_id => user.id,:file => file) .
任何的想法 ?
class ExplorerObserver < ActiveRecord::Observer
observe :photo
def after_save(photo)
user = photo.user
Explorer.award_achievements_for(user) unless photo.new_record?
end
end
Run Code Online (Sandbox Code Playgroud)
我的错误,这是一个愚蠢的问题,但对于存档,这是我的答案:
如果你有多个观察者,不要像这样放置多行
config.active_record.observers = :popular_observer
config.active_record.observers = :explorer_observer
Run Code Online (Sandbox Code Playgroud)
相反,我之前的代码是用最后一个观察者覆盖观察者!
config.active_record.observers = :popular_observer, :explorer_observer
Run Code Online (Sandbox Code Playgroud)