Student.includes(:teacher)
вернет ActiveRecord::CollectionProxy
, что означает, что если взять конкретный объект в этой коллекции, это будет Student
объект класса.
В отличие от запроса SQL, сгенерированного и возвращающего данные из 2 таблиц, он неРаботая так же в рельсах, вы получаете данные только из столбца students
, который будет связывать связанную запись в таблице teachers
, потому что она представляет Student
модель.
Вы можете получить доступ к следующим teachers
данным, как,
students = Student.includes(:teacher)
students.last.teacher.name
Выше ни один новый запрос не будет запущен в базе данных, когда вы вызовете teacher
сопоставление с объектом