ruby-on-rails - Ruby on Rails - 为什么不回滚 "raise ActiveRecord::Rollback"的嵌套事务?

标签 ruby-on-rails

我希望 abraise 起为零内部事务将“冒泡”到外部事务,但事实并非如此。 ab还是有值(value)观的。为什么会这样?

a = nil
b = nil
Foo.transaction do
  a = Bar.create! name: 'a'
  Foo.transaction do
    b = Bar.create! name: 'b'
    raise ActiveRecord::Rollback
  end
end

puts "a: #{a.reload.inspect}" #has value
puts "b: #{b.reload.inspect}" #has value

最佳答案

从我收集的 the ROR docsthis post内部事务回滚,但外部事务仍然提交内部事务,因此尽管raise,所有对象都被持久化。 .

关于ruby-on-rails - Ruby on Rails - 为什么不回滚 "raise ActiveRecord::Rollback"的嵌套事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56280161/

相关文章:

jquery - 我在使用 event.preventDefault(); 时遇到问题获取我的 DOM 上的 ahref

ruby-on-rails - 如何在 Rails 中实现 Rouge 语法高亮?

ruby-on-rails - 像 Ruby on Rails 中的查询字符串一样解析字符串

ruby-on-rails - 为什么我的模型的唯一性验证规范在应该通过时却失败了?

javascript - 事件管理员批处理下拉列表已禁用未捕获的 ReferenceError : options is not defined

ruby-on-rails - 将 Rails 自定义 SQL 查询映射到 ActiveRecord 模型

ruby-on-rails - 以其他方式创建记录时,Rails 关联回调未运行

ruby-on-rails - Ubuntu 12.0.4 上的 Rails 应用程序,tzdata 2016j 提取不正确的时区缩写

ruby-on-rails - rails : Render view content in post-processor (model/helper issues)

ruby-on-rails - [middleware] 的副本已从模块树中删除,但仍处于事件状态! - 错误