0
我有三類:的Rails:find_by作出額外的SQL查詢,按以前包括
class Batch
has_many :final_grade_batches
end
class FinalGradeBatch
belongs_to :batch
belongs_to :student
end
class Student
has_many :final_grade_batches
end
我想檢索final_grade_batch
方式如下:
batch = Batch.includes(:final_grade_batches).find(1)
batch.final_grade_batches.find_by(student_id: 2)
最終線生產這SQL查詢:
FinalGradeBatch Load (0.6ms) SELECT "final_grade_batches".* FROM "final_grade_batches" WHERE "final_grade_batches"."batch_id" = $1 AND "final_grade_batches"."student_id" = 2 LIMIT 1 [["batch_id", 1]]
如果我在中包含 find
查詢,爲什麼它再次尋找final grade batch
?我知道它需要找到具有該學生ID的人,但是Rails應該通過查詢來獲取該ID?現在沒有加載到內存中嗎?
有沒有什麼辦法可以得到final grade batch
沒有Rails再次擊中數據庫?謝謝!