RoR:查找对象数组的所有关联对象

时间:2012-07-28 19:04:25

标签: ruby-on-rails arrays associations associated-object

在rails中工作,我正在努力输出2012年秋季季度用户类的列表。我在这里有3个重要模型:用户,宿舍和课程。根据我所做的其他工作,我很确定我的模型协会是现场,但对于那些感兴趣的人:

  • 用户has_many:宿舍和has_many:通过宿舍的课程
  • Quarter属于用户和HABTM课程(通过适当的连接表)
  • 课程有很多用户通过宿舍和HABTM宿舍

我想实现一个查询来收集特定季度的课程,例如

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

但这导致了一个错误“未定义的方法'课程'”,我理解,但我仍然希望访问对象数组的所有相关对象,因为上面的代码而不是运行我需要的嵌入式循环:

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

谢谢!任何想法都赞赏:))

1 个答案:

答案 0 :(得分:3)

像这样:

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

应该工作:)