我是rails的新手,对于在ActiveRecord中访问关系关系有疑问。
考虑这个伪代码:
class Organisation
has_many: :projects
class Project
has_many: :tests
class Test
belongs_to: project
有效3级。我需要访问特定组织的测试,尽管我只能像项目一样深入。
即
@organisation = Organisation.find(params[:id], :include => [:projects])
真的,我需要做的就是
@organisation.projects.scripts.all
但从我正在阅读的内容来看,这是不可能的。那么,解决方案是什么?
谢谢你们
答案 0 :(得分:1)
你想要这样的东西:
@organisation = Organization.includes(:projects => :tests).find(params[:id])
@organization.projects.collect(&:tests)
这将急切地加载一个组织及其所有项目和测试,然后它将收集与该组织相关的所有项目的所有测试。