1

我有以下输出:

> 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>]

如何删除所有重复项并仅保留一个 user2 项目。

目标

> 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>]
4

1 回答 1

0

编辑

我想,我首先误解了你的问题。您只需要每个用户一个项目 - 对吗?

我假设您在用户模型中定义了一个用户有很多项目,那么以下应该可以工作:

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
于 2013-01-24T20:47:49.930 回答