Rails ActiveRecord 回滚没有发生在出现异常时预期发生的地方

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

假设我有一个名为书的对象。 一次预订,节省!给出的所有模型回调将根据定义的 Rails 顺序触发。 在我的例子中,API 请求超时异常发生在 around_save 回调的中间。我的理解是,由于 after_commit 未触发,因此应该回滚该事务。但就我而言,数据存储到数据库中。我缺少什么。有人可以帮忙吗?我是 Rails 初学者。

不知道如何理解这一点。使用 ruby 2.7.5 和 Rails 4.2.11

ruby-on-rails ruby database rubygems
1个回答
0
投票

如果您在定义模型回调、验证等的地方添加更多信息,那就更好了。

例如,如果您在 before_save 回调中有一些验证,那么在添加错误后

throw :abort
很重要。

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