我有观察员设立奖励模型更改的徽章。 它在我使用视图时有效,但是当我执行以下操作时,我似乎不会触发: 来自控制台或种子文件的Photo.create(:user_id => user.id,: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
答案 0 :(得分:3)
我的错误,这是一个愚蠢的问题,但对于存档,这是我的答案:
如果你有多个观察者,不要像这样放多行
config.active_record.observers = :popular_observer
config.active_record.observers = :explorer_observer
代替链接你的观察者,我之前的代码用最后一个代码覆盖了观察者!
config.active_record.observers = :popular_observer, :explorer_observer
答案 1 :(得分:1)
您是否忘记将其放在config/application.rb
课程内的Application
内?
config.active_record.observers = :photo_observer