我有两个通过has关联的模型,属于多个关联,称之为Foo
和Bar
。
现在说我有一个foo
个实例,还有bar1
和bar2
。 foo
已与bar1
关联。
当我尝试更新关联并将bar2
添加到foo
时,我遇到了问题。
foo.update_attributes(bar_ids=>bar2.id)
这将首先删除与bar1
的现有关联,然后将关联添加到bar2
,以便foo.bars
仅返回bar2
。我希望更新操作添加第二个关联而不删除第一个。
我觉得这是一个简单的解决方案,但我找不到答案。非常感谢任何帮助,谢谢!
答案 0 :(得分:1)
方法bar_ids
的行为,用于替换通常所需的元素。如果要添加新元素,可以将其添加到关联中,如下所示:
foo.bars << bar2
或者如果您需要使用方法bar_ids
,只需首先获取值并将其添加到数组中,如下所示:
foo.update(bar_ids: foo.bar_ids | [bar2.id])