model1.rb
def method1
Model1.transaction do
model2_ref_obj = Model2.find(some_id)
model2_ref_obj.method1
end
end
model2.rb
def method1
Model2.transaction do
## so some work
self.save!
end
end
model1
的交易回滚时,内部交易也会回滚吗?
答案 0 :(得分:0)
根据ActiveRecord Nested Transactions上的文档:
事务调用可以嵌套。默认情况下,这使嵌套事务块中的所有数据库语句成为父事务的一部分。
意味着如果父事务回滚,则嵌套事务也将回滚,因为它们是同一事务的一部分。