Rails - 不要回滚交易的某些部分

时间:2016-03-03 08:16:34

标签: ruby-on-rails

是否可以不回滚交易的某些部分?

我试图在一个有点复杂的代码库中使用SELECT钩子,其中许多部分都包含在一个大的事务块中。但是,我想保存一个日志条目,无论整个事务是否失败并获得回滚。

我也不能使用after_validation,因为在某些情况下永远不会调用它。

1 个答案:

答案 0 :(得分:1)

transaction的定义声称它是Atomic - 没有必要将它分成可以前滚或后退的部分。在this SO线程中,您可以获得回调列表,并选择适合您的案例来记录所需信息。考虑重构代码 - 将该操作拆分为较小的操作(实际事务)。