美文网首页
Rails方法之——transaction(交易)方法

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

作者: 小小修行者 | 来源:发表于2018-09-25 16:01 被阅读0次

    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没改,就出问题了。

    相关文章

      网友评论

          本文标题:Rails方法之——transaction(交易)方法

          本文链接:https://www.haomeiwen.com/subject/gkdloftx.html