ruby-on-rails - 有没有办法将 after_commit 回调设置为特定的 ActiveRecord 事务

标签 ruby-on-rails ruby activerecord transactions activesupport

我正在以这种方式创建一个 ActiveRecord 事务

ActiveRecord::Base.transaction do
  MyModel.create!(name: "value")
  OtherModel.create!(name: "value")
end

我想为此事务设置一个特定的after_commit 回调。我不想将它附加到任何一个模型,因为我不想在每次单独创建其中一个模型时都执行它。

我也不能简单地在 transaction block 的末尾写一些代码,因为也许真正的交易是在这段代码之外创建的(我没有设置 require_new选项为 true)

有什么方法可以设置回调到特定的事务实例吗?

非常感谢

最佳答案

请看看这些 gem :

关于ruby-on-rails - 有没有办法将 after_commit 回调设置为特定的 ActiveRecord 事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505547/

相关文章:

ruby-on-rails - IN 的 Rails 2.3.5 事件记录条件问题

ruby-on-rails - 当带有 Rails 应用程序的容器完成启动时回调(或等效)?

ruby-on-rails - 使用 Websockets 部署瘦

javascript - Ruby 哈希到 JavaScript

ruby - rails 3.1,为什么设计无法构建资源?

php - MySQL-根据另一个表的列数从一个表获取记录

ruby-on-rails - ActiveRecord:验证和写入数据库之间的并发访问

html - View 中的 html 和 erb 排列有问题

ruby - 为什么 ruby​​ 不支持方法重载?

ruby-on-rails - Rails 3. 如何通过虚拟属性执行 "where"查询?