0

我需要评估一个 user_id 在数组中是否存在多次。最终,我需要确定用户是否能够在一次尝试中完成一项任务(每个任务都保存为一条记录)。我需要显示成功的百分比,这最终取决于第一次尝试就成功的用户数量。我向任务模型“:通过”添加了一个布尔值,但是我必须编写更多逻辑来为第一条记录设置该布尔值,然后在创建任何后续记录时取消设置。那闻起来 我现在的方法是简单地创建一个 task.users 数组,然后确定该数组中是否存在任何 user_id 多次......以及它是否确实从数组中删除了该整数的所有实例(以便不计算在内) . 我绊倒了自己的思维过程,却没有成功……

如何迭代所有任务并计算计数大于 1 的任何用户的每次迭代 user_id 和 .delete(user_id)?

4

1 回答 1

1

不明白你在问什么,但这会给你一个 user_id 的数组,它们已经完成了没有重复的任务:

task.users.map(&:user_id).uniq

根据您的评论,您可以尝试:

task.users.group_by{ |u| u.user_id }.collect{ |u, dups| u if dups.size == 1 }.compact
于 2012-09-21T16:09:30.233 回答