Rails UNIQ方法不起作用-Rails 4



我正在尝试使用rails辅助方法uniq,但不确定为什么它不起作用。非常感谢您的帮助

  • 我有一张申请表的清单,例如:3张
  • 其中2份申请表由女性提交,1份由男性提交
  • 这两份申请表是同一位女士写的
  • @forms.count=3
  • @forms.female_applicants.count=2
  • @forms.female_applicants.uniq.count=给我2,但答案应该是1

型号

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

Form.rb

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

我的问题:如果同一个女人有两种形式,有人能告诉我如何将表单的数量唯一显示为1,而不是2。所以什么时候查询@forms.female_applicants.uniq.count,结果为1而不是2,如果有比使用uniq方法更好的方法,如果告诉,我会非常感激

@Dan&hypern你是对的-存在非唯一元素,这就是为什么我不能使用rails方法uniq

使用@forms.female_applicants.group_by(&:user).count得到了我正在寻找的答案

非常感谢

最新更新