当我有 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.transaction
或 B.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/