Rails方法之——transaction(交易)方法

transaction方法的使用像这样:

ActiveRecord: :Base.transaction do
  PartyA.withdraw(500) #1)甲方支出500
  PartyB.deposit(500) #2)乙方存入500
end

在transaction do中,要求条件 1)和条件2)需要全部生效的时候数据库才能记录更新,否则全部不生效,数据库rollback。转账交易是transaction(交易)方法最典型的应用场景。
其中,PartyA可用类或实例(@party_a)表示。

transaction的应用场景一般为两张表以上的修改动作。如A表的修改动作成功后,B表的一个动作本来应该同步修改的。但是由于其他原因(通常是验证的问题),B表没有修改成功,这样,A改了,B没改,就出问题了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容