【发布时间】:2013-01-20 10:07:38
【问题描述】:
@teachers = User.joins(:students).where("student_id IS NOT NULL")
上面的有效,下面的无效。
@teachers = User.includes(:students).where("student_id IS NOT NULL")
据我了解,连接和包含都应该带来相同的结果和不同的性能。根据this,你使用includes来加载Model调用的对象的关联记录,其中joins只是简单地将两个表相加。使用includes也可以防止N+1 queries。
第一个问题:为什么我的第二行代码不起作用?
第二个问题:在与上述类似的情况下,是否有人总是使用includes?
【问题讨论】:
-
不起作用是什么意思?
标签: ruby-on-rails database rails-activerecord