簡體   English   中英

ActiveRecord :: Base.transaction與嵌套事務

[英]ActiveRecord::Base.transaction with Nested transactions

我有一個Rails應用程序(Rails v4.2.4和Ruby v2.2.2),有時工作起來很神奇。.因此,讓我們嘗試解釋發生了什么。

由於某種原因,我的記錄不是在幾秒鍾內就被復制的,他只是復制了交易並保留了重復的記錄

我想知道你們中的某些“大師”是否通過了這種情況。

該問題不會每次都發生,對我來說意味着錯誤不在我的代碼上,因為該規范令人滿意。

我已經閱讀了許多文檔,並得到了帶有嵌套事務的可疑“ ActiveRecord :: Base.transaction”信息……但即使是我最努力的嘗試,我也無法重現錯誤,這確實使我感到困惑和沮喪

我正在尋求幫助! rs ..

好的。 首先,如果您不想在基礎中有重復的記錄,則應添加數據庫約束。 通過此鏈接可以更好地了解。 數據庫約束是避免重復數據的第一步。

現在,當您想在單個調用中創建/更新兩個或多個不相關的對象時,通常使用ActiveRecord :: Base.transaction。 您希望所有人都成功,否則就什么也不做。 就像創建單個對象時一樣,默認情況下所有回調都包裝在事務中,因此在這種情況下無需添加ActiveRecord :: Base.transaction塊。

更高級的方法是使用ActiveRecord :: Locking 當您處理財務數據時,此技術特別重要。

要重現該錯誤,只需同時發送兩個curl請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM