Mongoid更新与现有文档的关联,而不是创建新文档

时间:2015-02-22 12:37:29

标签: ruby-on-rails-4 mongoid

我试图弄清楚如何使用Mongoid优雅地更新文档与现有文档的关联。

如果我有用户和组,并且想要将用户分配给现有组,我该如何通过update_attributes执行此操作?

我希望能够做到这样的事情:

user.attributes = { groups: [{"_id":"existing group id here"}]}
user.save

当我尝试执行上述操作时,Mongoid会尝试插入新组,从而导致ID重复错误。 我试过通过嵌套属性做同样的事情:

user.groups_attributes = [{"_id":"existing group id here"}]
user.save

发生同样的错误。反正我是否可以这样做而无需手动查询组ID并将其推入阵列?我问的原因是因为我说我有一个有很多关联的模型..我不想让代码块手动更新每个关联

1 个答案:

答案 0 :(得分:0)

将现有用户分配给具有update_attributes的现有组非常简单(假设您已添加了组/用户关系)。

user.update_attributes(:group_id => 'existing group id here')