【发布时间】:2014-05-26 14:14:29
【问题描述】:
我有一个接收两个模型的过程,一个已经存在,另一个包含我想在第一个中合并的新属性。
由于程序的其他部分对新模型具有相同的引用,因此我不能只对现有模型进行操作。为此,我做了以下事情:
def merge(new_model, existing_model)
new_model.attributes = existing_model.attributes.merge(new_model.attributes)
new_model.id = existing_model.id
end
现在 new_model 正在被保存,这给了我唯一性错误(即使它在技术上是相同的模型)。我也尝试使用 reload 方法,但结果相同。
背景:
上述方法在关联的 before_add 回调中运行。我希望能够在模型(具有嵌套关联)上调用更新,而不必指定嵌套模型的 ID。这个更新应该合并一些关联,这就是为什么我尝试做上面的整个合并。
【问题讨论】:
标签: ruby-on-rails validation ruby-on-rails-4