防止同时更新对象的不同实例

时间:2017-09-05 18:16:31

标签: ruby-on-rails

我在控制器中有一个简单的动作来更新对象A:

@a.update(params)

可以使用accepts_nested_attributes创建关联对象。为了这个例子,在params中我们可以有b_ids: [1,2,3]

关联对象B具有uniqueness验证,以确保仅与对象A关联一次。这在正常条件下按预期工作。

然而,此操作正在由JavaScript脚本执行,并且出于某种原因(我无法发现的错误)被触发两次,这导致两次同时调用更新动作,导致创建重复的关联。

我已经阅读过Rails中的交易,但我不确定这可以在这里应用。所以我的问题是:如何避免两个不同的记录实例同时发生?

PS1:当然,需要修复那个JS脚本,但我想如果两个不同的用户同时更新同一个对象,这仍然会发生......

PS2:我甚至不确定我是否要求正确的事......抱歉: - )

0 个答案:

没有答案