简单如下
class Ma < ActiveRecord::Base
end
class Mb < ActiveRecord::Base
end
class Mc < ActiveRecord::Base
def xxx
transaction do
Ma.create attr1: "xxx"
raise "error"
Mb.create attr1: "xxx"
end
end
end
大致如上,没贴细节代码,在 transaction 中间 raise 了,但是数据库 Ma 还是多了一条记录,为何