0
私の関係が正しく設定されているかどうかは完全には分かりませんが、ここでは何をしようとしています。私はStudent
のアクティブEnrollment
のGrade
を返そうとしています。 ActiveRecordクエリの関連プロパティにアクセスできません
current_enrollments = self.enrollments.where('admission_date <= ? and withdraw_date is null or withdraw_date >= ?', Date.today, Date.today)
class SchoolYearGrade < ApplicationRecord
belongs_to :school_year
belongs_to :grade
has_many :enrollments
end
class Enrollment < ApplicationRecord
belongs_to :student
belongs_to :school_year_grade
end
class Grade < ApplicationRecord
has_many :school_years, through: :school_year_grades
has_many :school_year_grades
end
class Student < ApplicationRecord
has_many :enrollments
def get_current_grade
if self.enrollments.any?
current_enrollments = self.enrollments.where('admission_date <= ? and withdraw_date is null or withdraw_date >= ?', Date.today, Date.today)
if current_enrollments.count == 1
current_enrollments.first.school_year_grade.grade.title
else
...
end
else
...
end
end
end
Student
モデルで
get_current_grade
方法では、デバッグ、私は
current_enrollments.first.school_year_grade.grade
にアクセスしようとだけ
Nil
が返されます。私は
.includes(:school_year_grade)
を
current_enrollments
のクエリに追加しようとしましたが、何も取得できませんでした。
どのようなsqlクエリが実行されますか?あなたが期待した結果ですか? – phoet