如果在Rails的2个模型中一次更新失败则回滚

问题描述 投票:0回答:1

我有2个要更新的模型假设我有交易和产品

我想先更新交易,然后再更新产品但是由于某些原因我无法更新产品,我是否可以在rails中回滚产品和交易?如何 ? :D

ruby-on-rails ruby ruby-on-rails-4 activerecord
1个回答
1
投票
您想要做的是将它放在一个事务中。如果发生任何错误,它将回滚在块中进行的所有操作

https://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

begin ActiveRecord::Base.transaction do @transaction.save! @product.save! end #handle success here rescue ActiveRecord::RecordInvalid => invalid #handle failure here end

© www.soinside.com 2019 - 2024. All rights reserved.