1

レールで作業して、2012 年秋四半期のユーザー クラスのリストを出力する作業を行っています。ここでは、ユーザー、四半期、およびコースという 3 つの重要なモデルがあります。私が行った他の作業に基づいて、私のモデルの関連付けが適切であると確信していますが、興味のある人のために:

  • ユーザー has_many :quarters および has_many :courses through Quarters
  • 四半期の属し_ユーザーと HABTM コース (適切な結合テーブルを介して)
  • Course has_many users through Quarters and HABTM Quarters

次のような特定の四半期のコースを収集する単一のクエリを実装したいと思います

    current_user.quarters.where(:term => "Fall 2012").courses.each do |c|
       puts c.title
    end

しかし、これにより「undefined method 'courses'」というエラーが発生しますが、これは理解できますが、必要なことを行う埋め込みループを実行する代わりに、上記のコードのように、オブジェクトの配列に関連付けられているすべてのオブジェクトにアクセスしたいと思います。

    current_user.quarters.where(:term => "Fall 2012").courses.each do |q|
        q.courses.each do |c|
            puts c.title
        end
    end

ありがとう!どんなアイデアでも大歓迎です:)

4

1 に答える 1

3

このような :

current_user.courses.where("quarters.term" => 'Fall 2012')

動作するはずです:)

于 2012-07-28T19:12:00.520 に答える