:lesson
в joins(:lesson)
должно быть именем отношения, определенного в Student
модель:
class Student < ApplicationRecord
belongs_to :lesson
end
Тогда вы можете переписать ваш запрос как:
Student.joins(:lesson).all
НО это приводит к N + 1 запросам на случай, если вам нужен доступ к Lesson
:
students = Student.joins(:lesson).all
lesson_name = students.first.lesson.name
Чтобы избежать этого, используйте includes
вместо:
Student.includes(:lesson).all
Вы можете (должны) добавить отношение контрагента к Lesson
:
class Lesson < ApplicationRecord
has_many :students
end
Кстати, вы можете использовать строки в соединении:
Student.joins('join lessons on students.lesson_id = lessons.id')