Ruby on rails 我可以在仅在更新时触发的观察器中进行after_commit回调吗?
ActiveRecord包含了一个after_commit回调,这很好,但是在这种情况下,似乎没有办法让它只在更新时生效,而不在创建时生效,反之亦然 有没有办法让这种行为发生?类似于Ruby on rails 我可以在仅在更新时触发的观察器中进行after_commit回调吗?,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,ActiveRecord包含了一个after_commit回调,这很好,但是在这种情况下,似乎没有办法让它只在更新时生效,而不在创建时生效,反之亦然 有没有办法让这种行为发生?类似于 def after_commit return unless self.was_just_updated # ..... end 答案是 def after_commit return if created_at == updated_at # ..... end 未经测试,但您可能希望在您定义
def after_commit
return unless self.was_just_updated
# .....
end
答案是
def after_commit
return if created_at == updated_at
# .....
end
未经测试,但您可能希望在您定义的观察者类中尝试此操作,例如更新后的
,或者在创建后不定义(或者将其置为空),或者您的意思是,您根本不希望观察者在创建时做出反应,谢谢。实际上,我在键入后意识到,我可以检查已创建的\u at==已更新的\u at
,它在创建时始终为真,在更新时始终为假。@244an但这些操作将在事务关闭之前执行。交易结束后我需要它。