ActiveRecord实例事务块和类之间有什么区别?

时间:2015-07-09 14:28:05

标签: ruby-on-rails ruby activerecord transactions

我在当前任务中使用Active Record Transactions。我能够以下面提到的两种方式完成我的工作。但我不清楚是否有任何差异,在transactioninstance上调用class方法。

我已经浏览过Rails API,但没有发现任何差异。

  

transaction方法的两个用法之间有什么区别?

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

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

提前致谢!

1 个答案:

答案 0 :(得分:4)

没有区别,实例方法只是将执行委托给类方法。这是代码:

def transaction(options = {}, &block)
  self.class.transaction(options, &block)
end