-1

にhas_manyの範囲内で自己を参照しようとしています。今、私はこのように見えるようにhas_manyラインを変更する必要があります。上記のコードからは、私は次のセットアップを持っているレール5

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 

、私は私がTeamEnrollment.first.term_enrollmentsを行うには、次のエラーをしてみてください取得する場合:私はwhere句をテストしている

undefined method `start_date' for #<TermEnrollment::ActiveRecord_Relation:0x007ff706550550> 

上のコードの最初の設定で、うまく動作します。 has_many句の中ではうまくいきません。 私はそれがhas_many throughの内部の使用と関係していると確信しています。私はTeamEnrollmentのstart_dateを参照しようとしています。どうすればいいですか?

答えて

0

スコープについてhas_manyドキュメントのセクションには、次の例を示します。例はscopeはそれが

に呼び出されていたレコードがあるパラメータを取ることができることを示すこと

has_many :posts, ->(blog) { where("max_post_length > ?", blog.max_post_length) } 

関連する問題