在嵌套事务中,如果外部事务被回滚,内部事务是否会回滚?

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的事务回滚时,内部事务是否也会回滚?

根据ActiveRecord嵌套事务的文档:

事务调用可以嵌套。 默认情况下,这会使嵌套事务块中的所有数据库语句成为父事务的一部分。

这意味着如果父事务回滚,那么嵌套事务也将如此,因为它们是同一事务的一部分。