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
给我一个准确的计数。