模型A.交易有什么区别..结束和模型B.交易做..以轨道结束?



我有两个模型(ActiveRecord(,ModelA和ModelB。我想知道两个代码段显示是否相同,如下所示?

ModelA.transaction do 
ModelA.create! attr1: 'value1', attr2: 'value2'
ModelB.create! attr1: 'value1', attr2: 'value2'
end
ModelB.transaction do 
ModelA.create! attr1: 'value1', attr2: 'value2'
ModelB.create! attr1: 'value1', attr2: 'value2'
end

似乎他们俩都工作得很好。 那么它们之间有什么区别呢?

谢谢

没有区别。事务是按数据库连接而不是按模型进行的。因此,只要类映射到同一数据库,它们都是相等的。

参考资料:https://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

最新更新