以下の表を使用して問題を説明したいと思います。
university = University.where('class.name' => 'example', 'class.students.age' => '21').includes(:class, :student)
University
id
class.id
name
Class:
id
student.id
name
MaximumStudents
Student:
id
name
age
ご覧のとおり、テーブルはUniversity
テーブルを参照していClass
ます。テーブルはClass
テーブルを参照しStudent
ます。
example
というクラスがあり、学生の年齢が高い大学を取得したいと考えています21
。私はそれが奇妙だと知っていますが、それは私の問題を示しています:D
を取得するためのクエリを取得できませんStudent
。「「学生」という名前の関連付けが見つかりませんでした」というエラーが常に表示されます
Student
テーブルを使用せずに次のようにするとうまくいきます
university = University.where('class.name' => 'example').includes(:class)