@teachers = User.joins(:students).where("student_id IS NOT NULL")
Rails查詢]加入之間的區別
上面的工作,下面沒有。
@teachers = User.includes(:students).where("student_id IS NOT NULL")
據我瞭解,連接和包括應既帶來不同的性能相同的結果。根據this,您使用includes
加載由Model調用的對象的關聯記錄,其中joins
只需將兩個表一起添加。使用includes
也可以防止N+1 queries
。
第一個問題:爲什麼我的第二行代碼不工作?
第二個問題:任何人都應該在類似於上面的情況下總是使用includes
?
你是什麼意思不起作用? –
檢查了這一點:http://railscasts.com/episodes/181-include-vs-joins – Nobita