单个事务中的不同 ActiveRecord 类

虽然在某些 ActiveRecord 类上调用了事务类方法,但事务块中的对象不一定都是该类的实例。这是因为事务是按数据库连接,而不是每个模型。

在此示例中,即使在 Account 类上调用了事务,也会以事务方式保存余额记录:

Account.transaction do
  balance.save!
  account.save!
end

事务方法也可用作模型实例方法。例如,你也可以这样做:

balance.transaction do
  balance.save!
  account.save!
end