生徒のクラスごとに保護者の電子メール アドレスのリストをフィルター処理したいと考えています。
これが私のモデルの単純化です:
Class District
has_many :schools
has_many :families
has_many :children, :through => :families
has_many :parents, :through => :families
has_many :enrollments, :through => :children
end
Class Enrollments
belongs_to :child
belongs_to :classroom
end
電子メール アドレスは親レコードに関連付けられており、教室 ID の配列で電子メールをフィルター処理したいと考えています。
これを機能させることができます:
idees = [49, 50]
current_district = District.first
@emails = current_district.parents.includes(:family => { :children => { :enrollments => {:classroom => { :program => :location }}}}).where("family_id IN (?)", idees)
# Returns families with ID 49 and 50
しかし、私はこのようなものを機能させることはできません
idees = [49, 50]
current_district = District.first
@emails = current_district.parents.includes(:family => { :children => { :enrollments => {:classroom => { :program => :location }}}}).where("family.children.enrollments.classroom_id IN (?)", idees)
# Returns: PGError: ERROR: cross-database references are not implemented: family.children.enrollment.classroom_id
私は何を間違っていますか、またはこのクエリを作成するための別のより良い方法はありますか?