我正在尝试使用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
得到了我正在寻找的答案
非常感谢