看了一篇文章 Five More Active Record Features You Should Be Using。
里面讲到了 after_commit 和 after_save 的区别,如果 save 操作是在一个 transaction 中进行的,即使 transaction 失败回滚,after_save 依然会触发,但 after_commit 不会,印象中以前在 after_save 里面干了不少和非 ActiveRecord 对象交互的事儿,像发邮件呀什么的。
我也犯过同样的错····
难道不是正常逻辑?