Rails方法之——transaction(交易)方法

transaction方法的使用像這樣:

ActiveRecord: :Base.transaction do
  PartyA.withdraw(500) #1)甲方支出500
  PartyB.deposit(500) #2)乙方存入500
end

在transaction do中,要求條件 1)和條件2)需要全部生效的時候數(shù)據(jù)庫才能記錄更新,否則全部不生效,數(shù)據(jù)庫rollback。轉(zhuǎn)賬交易是transaction(交易)方法最典型的應用場景。
其中,PartyA可用類或?qū)嵗ˊparty_a)表示。

transaction的應用場景一般為兩張表以上的修改動作。如A表的修改動作成功后,B表的一個動作本來應該同步修改的。但是由于其他原因(通常是驗證的問題),B表沒有修改成功,這樣,A改了,B沒改,就出問題了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容