19
简单的问题。我有一个ActiveRecord模型,我希望在记录保存后执行后处理。所以在模型中,我有一个queue_for_processing方法,它将一个作业粘贴到Resque队列中。为了在我的记录成功保存后执行此操作,我在模型中写入了以下内容:Rails:after_create停止异常保存
after_create :queue_for_processing
很简单。我以为一切都按预期工作,除了昨天晚上我的redis服务器出现故障,事情出错了。我的期望是,该记录仍然可以保存,我可以手动处理这项工作。但是queue_for_processing方法抛出一个异常(预期的行为)并停止保存记录。
我误解了after_create的工作原理吗?或者,我的理解是否正确,发生了什么奇怪的事情?
谢谢。
太棒了,谢谢你的迅速反应。这也有帮助:http://rails-bestpractices.com/posts/695-use-after_commit –
此外,感谢您向我介绍after_commit。我看到它是在Rails3中引入的,但我一定错过了备忘录。我喜欢学习新东西:-) –
很好的解释!为简明起见+1。 –