ich folgendes Setup:in Schienen in einem has_many Umfang selbst beziehen Der Versuch 5
class TeamEnrollment < ApplicationRecord
belongs_to :team
has_many :term_enrollments, through: :team
end
Der obige Code funktioniert gut. Jetzt muss ich die has_many Linie wie folgt aussehen ändern:
has_many :term_enrollments,
-> {where("(term_enrollments.term_start_date <= ? AND term_enrollments.term_end_date >= ?) OR (term_enrollments.term_start_date >= ? AND term_enrollments.term_end_date > ?) OR (term_enrollments.term_start_date <= ? AND term_enrollments.term_end_date >= ?)", self.start_date, self.start_date, self.start_date, self.termination_date, self.termination_date, self.termination_date)}
, through: :team
Aus dem obigen Code, ich folgende Fehlermeldung erhalten, wenn ich versuche, TeamEnrollment.first.term_enrollments
zu tun:
undefined method `start_date' for #<TermEnrollment::ActiveRecord_Relation:0x007ff706550550>
ich die where
Klausel getestet mit der ersten Konfiguration von Code oben und es funktioniert gut. Es ist nur, wenn in der has_many
-Klausel, dass es nicht funktioniert. Ich bin mir ziemlich sicher, dass es mit der Verwendung von selbst innerhalb der has_many through
zu tun hat. Ich versuche, auf das start_date des TeamEnrollments zu verweisen. Wie mache ich das?