我有以下输出:
> group.items
=> [<Item id: 1, user_id: 7, group_id: 1>,<Item id: 2, user_id: 7, group_id: 1>,
<Item id: 1, user_id: 2, group_id: 1>,<Item id: 2, user_id: 2, group_id: 1>,<Item id: 3, user_id: 2, group_id: 1>,
<Item id: 4, user_id: 5, group_id: 1>]
如何删除所有重复项并只留下一个用户2项目。
目标
> group.items
=> [<Item id: 1, user_id: 7, group_id: 1>,
<Item id: 1, user_id: 2, group_id: 1>,
<Item id: 4, user_id: 5, group_id: 1>]
编辑
我想,我首先误解了你的问题。您只需要每个用户一个项目 - 对吗?
我假设,您在用户模型中定义,用户有很多项目,那么以下内容应该有效:
old_items = group.items
group.items.delete_all
old_items.users.each do |user|
group << user.items.first
end
group.save
否则,如果您只想要一个唯一列表,则以下内容就足够了:
group.items = group.items.uniq