0

我是 Rails 新手,对访问 ActiveRecord 中的关系有疑问。

考虑这个伪代码:

class Organisation
has_many: :projects

class Project
has_many: :tests

class Test
belongs_to: project

有效3级。我需要访问特定组织的测试,尽管我只能像项目一样深入。

IE

@organisation = Organisation.find(params[:id], :include => [:projects])

真的,我需要做的是

@organisation.projects.scripts.all

但从我读的内容来看,那是不可能的。那么,这个问题的解决方案是什么?

多谢你们

4

1 回答 1

1

你想要这样的东西:

@organisation = Organization.includes(:projects => :tests).find(params[:id])
@organization.projects.collect(&:tests)

这将急切地加载一个组织及其所有项目和测试,然后它将收集与该组织相关的所有项目的所有测试。

于 2012-06-30T01:14:47.200 回答