0
我有一个功能可以将一些数据保存到同一个mysql数据库中的多个表中。 在函数内部,ActiveRecord回滚多笔交易
def process_data(dataA, dataB, dataC, dataD)
# let's say dataA is saved to tableA, dataB to tableB, dataC to tableC, dataD to tableD
ActiveRecord::Base.transaction do
begin
tableA.create(:dataA => dataA)
tableB.create(:dataB => dataB)
tableC.create(:dataC => dataC)
tableD.create(:dataD => dataD) # let's say error occurred here
rescue
ActiveRecord::Rollback
end
end
end
如果有一个例外,同时创造新的记录提交,我想回滚一切(数据A,数据B,DATAC)。
我该如何实现它?
谢谢。
加'raise'修好了。谢谢。 –