我在控制器中有一个简单的动作来更新对象A:
@a.update(params)
可以使用accepts_nested_attributes
创建关联对象。为了这个例子,在params中我们可以有b_ids: [1,2,3]
。
关联对象B具有uniqueness
验证,以确保仅与对象A关联一次。这在正常条件下按预期工作。
然而,此操作正在由JavaScript脚本执行,并且出于某种原因(我无法发现的错误)被触发两次,这导致两次同时调用更新动作,导致创建重复的关联。
我已经阅读过Rails中的交易,但我不确定这可以在这里应用。所以我的问题是:如何避免两个不同的记录实例同时发生?
PS1:当然,需要修复那个JS脚本,但我想如果两个不同的用户同时更新同一个对象,这仍然会发生...... PS2:我甚至不确定我是否要求正确的事......抱歉: - )