0

有没有办法确定我的事务是否成功提交(并且没有回滚)?

Inventory.transaction do
  beads.each do |bead|
    # update something
    # insert something
    # delete something
  end
end

或者这样的事情是唯一的方法吗?

success = false
Inventory.transaction do
  beads.each do |bead|
    # update something
    # insert something
    # delete something
  end
  success = true
end

if success
  # do something
end

或者,因为异常被传播,如果没有异常就假设成功?

4

1 回答 1

0

如果您担心异常,为什么不将其包装在 try/catch 块(或begin/rescue块,更 Rubyish)中?

begin
  Inventory.transaction do
    beads.each do |bead|
      # update something
      # insert something
      # delete something
    end
  end
rescue WhateverError
  #handle error
end
于 2012-08-17T20:25:06.267 回答