ruby-on-rails - Rails 交易 : does it matter on which ActiveRecord model class?

标签 ruby-on-rails transactions

当我有 2 个对象要保存在事务中时

a = A.new(...)  
b = B.new(...)

在哪个模型类上调用事务方法重要吗?

A.transaction do
  a.save
  b.save
end

B.transaction do
  a.save
  b.save
end

IMNO 两者都使用相同的数据库事务,因为 ActiveRecord 只能处理一个连接,因此这应该不重要。这是正确的吗?

谢谢, 亚历克斯。

最佳答案

是的,只要两个类使用相同的数据库连接,您是正确的。类可以使用建立连接连接到不同的数据库,但您会知道您是否正在这样做。因此,正如您正确建议的那样,使用 A.transactionB.transaction 都可以。

如果他们使用不同的数据库,您可以嵌套事务调用:

A.transaction do
  B.transaction do
   ...
  end
end

但在本例中没有必要。

关于ruby-on-rails - Rails 交易 : does it matter on which ActiveRecord model class?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3966729/

相关文章:

ruby-on-rails - 在 1 个 View 中显示 2 个模型的数据

ruby-on-rails - 如何在终端中用颜色显示 Rails 服务器信息

JBoss 事务超时设置?

java - 本地方法调用中的 EJB 事务

mysql - 将 Ruby Rails 连接到 MySQL 数据库

ruby-on-rails - 有条件地包含带有 RABL 的子节点

javascript - 使用 JavaScript/Jquery 在 Ruby 中显示具有相同 id/class 的表单

transactions - 如何在 authorize.net 沙盒中结算付款?

asp.net - 无法从 MySql/.net 连接器中的同一 session 读取未提交的数据

java - 数据持久性的业务代码强制约束