是否可以不回滚交易的某些部分?
我试图在一个有点复杂的代码库中使用SELECT
钩子,其中许多部分都包含在一个大的事务块中。但是,我想保存一个日志条目,无论整个事务是否失败并获得回滚。
我也不能使用after_validation
,因为在某些情况下永远不会调用它。
答案 0 :(得分:1)
transaction的定义声称它是Atomic - 没有必要将它分成可以前滚或后退的部分。在this SO线程中,您可以获得回调列表,并选择适合您的案例来记录所需信息。考虑重构代码 - 将该操作拆分为较小的操作(实际事务)。