2016-06-28 60 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

導致答案我一直在尋找

千恩萬謝