has_many :through, :uniq => true
リレーションシップを介して結合された School オブジェクトと User オブジェクトの間に ActiveRecord があります。
学校のクラスでは、生徒を照会する特定の方法があります。
def students
self.users.where(educations: {end_date: nil})
end
これは、一意のユーザーのみ (重複なし) を正しく表示しているように見えますが、奇妙なことに、school.students.size
重複したレコードを含む数が表示されます! しかし、school.students から返された列挙型を見ると、一意のレコードしか表示されません。
where クエリの最後に #uniq を追加してみました。これで問題は解決しないようです。これまでのところ、私の唯一の解決策は使用することですschool.students.compact.size
が、これは正しくありません。
ちなみに、school.users.size
正確な数を教えてください。