У меня есть модели BatchClass и SubjectTeacherBatchClass, имеющие атрибуты, как показано ниже.
class SubjectTeacherBatchClass < ApplicationRecord
belongs_to :batch_class
belongs_to :user, optional: true
belongs_to :shift
belongs_to :session_batch
end
и
class BatchClass < ApplicationRecord
has_many :subject_teacher_batch_classes
has_many :subjects, through: :subject_teacher_batch_classes
has_many :teachers, source: :user, foreign_key: 'user_id', through: :subject_teacher_batch_classes
end
Я хочу получить доступ к batch_class.teachers, но с такими пользовательскими атрибутами, как, например,
batch_class.teachers.where(session_batch_id: session_batch.id, shift_id: current_shift.id)
Проблема в том, что session_batch_id
и shift_id
не являются атрибутами User
класса (псевдоним учителя), но являются атрибутами SubjectTeacherBatchClass
класса.(сквозной класс)
Есть ли лучший способ заставить учителей из batch_class передать эти атрибуты по умолчанию (session_batch и shift)