我的rails观察者遇到了一个非常烦人的问题。 其中一些工作正常,一些工作不正常。
例如,我的FollowObserver实现如下:
class FollowObserver < ActiveRecord::Observer
def after_create(follow)
debugger
PendingMail.create({
:method => "cause_being_followed",
:data => Marshal.dump({
:follower_id => follow.user_id,
:cause_id => follow.cause_id,
})
})
end
end
它没有在rails服务器中调用,但它在rails控制台中(我不明白为什么)。 当我运行测试时,它按预期工作(就像在运行rails服务器时,有些东西会阻止它运行)。
我也配置了application.rb:
config.active_record.observers = [
:cause_observer,
:charity_follow_observer,
:comment_observer,
:follow_observer,
:news_observer
]
知道我错过了什么吗?
答案 0 :(得分:0)
我认为它应该永远被触发。我会尝试用
替换行debugger
logger.debug "FollowObserver::after_create"
然后您将能够在日志中看到是否正确触发了操作。 另一个可能的原因是,当您认为对象已创建时,它可能由于某种原因无效并且实际上未创建。这可能吗?