Ruby on rails Rails活动记录查询仅联接,任何

Ruby on rails Rails活动记录查询仅联接,任何,ruby-on-rails,activerecord,rails-activerecord,Ruby On Rails,Activerecord,Rails Activerecord,通过这个查询,我可以看到那些注册人数true的学生,也可以看到那些注册人数既有true又有false的学生: Student has_many :enrollments 我是否可以添加一些“唯一”属性来查看只有活跃注册的学生?一种简单的方法是找到没有活跃注册的学生,然后明确排除他们。比如: @students = Student.joins(:enrollments).where(enrollments: { is_active: false }) 联接(:注册)将筛选出没有注册的学生条目,

通过这个查询,我可以看到那些注册人数
true
的学生,也可以看到那些注册人数既有
true
又有
false
的学生:

Student has_many :enrollments

我是否可以添加一些“唯一”属性来查看只有活跃注册的学生?

一种简单的方法是找到没有活跃注册的学生,然后明确排除他们。比如:

@students = Student.joins(:enrollments).where(enrollments: { is_active: false })
联接(:注册)
将筛选出没有注册的
学生
条目,而
where.not(…)
将排除所有没有注册的学生(使用子查询,以便所有工作仍在其所属的数据库中)


顺便说一句,你可能想修正你的“注册”拼写,双l拼写错误可能会让你或其他程序员发疯

have_inactives = Enrollment.where(is_active: false).select(:student_id)
@students      = Student.joins(:enrollments).where.not(id: have_inactives)