2016-06-28 63 views
2

我想使用rails辅助方法uniq,但不确定它为什么不起作用。您的帮助会非常赞赏Rails的UNIQ方法不工作 - Rails 4

  • 我有申请表列表例如:3种形式
  • 的申请表格
  • 2是妇女和1是由一个人
  • 的申请表2是由同一个女人
  • @forms.count = 3
  • @forms.female_applicants.count = 2
  • @forms.female_applicants.uniq.count =给我2但俺们WER应该1

型号

  • Form属于user
  • User有许多forms
  • User属于category_gender
  • Category_gender有许多users

Form.rb

scope :female_applicants, ->() { joins(:category_gender).where('category_genders.name' => "Female") } 

我的问题:如果同一个女人有2种形式,可能一个好心告诉我如何 显示数的形式唯一为1而不是2.所以当 查询@forms.female_applicants.uniq.count结果将是1 而不是2如果不是使用uniq方法,如果告诉

+1

这听起来像有可能的非唯一元素你@结果。如果在rails控制台中键入'@ forms.female_applicants'并查看结果输出,则可能会看到在整个集合中不唯一的数据片段。也许你可以尝试这个并将它添加到你的原始问题。 – Dan

+0

我试着写这样的'@ forms.female_applicants.where(user:user_id).count',但没有运气 – ARTLoe

+0

这给了正确的答案'@ forms.female_applicants.group_by(&:user).count' - 给了一个计数'1' - 我可能是错的 - 任何意见将不胜感激 – ARTLoe

回答

1

@丹& @hypern你是对的,我将非常感激更好的方法 - 有非唯一元素目前这就是为什么我不能使用using @forms.female_applicants.group_by(&:user).count轨方法uniq

导致答案我一直在寻找

千恩万谢