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。 –