ruby-on-rails - callbacks - rails validate




了解Rails 4中的after_update回調 (2)

我有一個Rails對象與after_update回調發送記錄到隊列。 問題是,我注意到有時隊列正在被處理的速度比對象實際上正在更新。

我的問題是: after_update是在對象更新結束後調用的,但是當它開始時呢? 如果我只想更新成功之後用它做什麼,我需要什麼回調?


after_createafter_createafter_update在事務塊內被調用,所以它們將在執行SQL語句之前被執行。

如果你想在語句執行完成的時候做些什麼,你應該使用after_commit回調。


如果您參考Rails文檔,您會發現很多可以使用的回調函數。 這項工作最好的可能是“after_commit”:

這是直接從Rails文檔(鏈接在底部)

3.1 Creating an Object

before_validation
after_validation
before_save
around_save
before_create
around_create
after_create
after_save
after_commit/after_rollback

3.2 Updating an Object

before_validation
after_validation
before_save
around_save
before_update
around_update
after_update
after_save
after_commit/after_rollback

3.3 Destroying an Object

before_destroy
around_destroy
after_destroy

Rails DOcs: http ://guides.rubyonrails.org/active_record_callbacks.html





callback