2016-03-03 20 views
1

是否有可能不回滾事務的某些部分?Rails - 不要回滾事務的某些部分

我試圖在一個有點複雜的代碼庫中使用一個after_validation掛鉤,其中很多部分都包含在一個大事務塊中。但是,我想保存一個日誌條目,無論整個事務是否失敗並且回滾。

我也不能使用after_rollback,因爲在某些情況下永遠不會調用它。

回答

1

transaction的定義聲稱它是原子的 - 不需要將它拆分成可獨立前滾或後退的部分。在this SO線程中,您可以獲得回調列表並選擇哪個套件來記錄需要的信息。考慮重構您的代碼 - 將該操作拆分爲更小的操作(實際事務)。