Class User
has_many :universities
end
Class University
belongs_to :user
has_many :courses
end
Class Course
belongs_to :university
end
现在,我想找到任何用户的courses
。
我可以使用以下查询:
User.find(1).universities.collect{|x| x.courses}
但是有没有其他简单的方法来获得这个结果?请解释一下你的答案,以便我能理解。 提前谢谢!
答案 0 :(得分:3)
加入User
模型:
has_many :courses, through: :universities
现在您可以通过以下方式获取用户的所有课程:
User.find(1).courses
来自文档(http://guides.rubyonrails.org/association_basics.html#the-has-many-through-association):
has_many:通过关联通常用于与另一个模型建立多对多连接。此关联表示通过第三个模型可以将声明模型与另一个模型的零个或多个实例匹配。