Rails Active Record Query仅加入,任何

时间:2017-01-05 22:07:51

标签: ruby-on-rails activerecord rails-activerecord

State0BaseTheme

通过此查询,我看到有Student has_many :enrollments 次注册的学生,以及 truetrue注册的学生:

false

是否有一些"只有"我可以添加哪些属性来查看有效注册的学生?

1 个答案:

答案 0 :(得分:0)

直接的一种方法是找到非活动注册的学生,然后明确排除他们。类似的东西:

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

joins(:enrollments)将过滤掉没有任何注册条目的Student条目,where.not(...)将排除所有拥有非活动注册的学生(使用子查询等所有工作仍然在它所属的数据库内。)

顺便说一下,你可能想要修改你的#34;注册"的拼写,双l拼写错误可能最终会让你或其他程序员疯狂。