仅查询嵌套的关联记录



我在我的模型中设置了以下内容:

class Project < ApplicationRecord
has_many :plans
end
class Plan < ApplicationRecord
belongs_to :project
has_many :documents
end
class Document < ApplicationRecord
belongs_to :plan
end

我正在尝试创建一个查询,以便轻松返回所有嵌套的关联记录。例如,我希望能够执行以下操作:Project.documents并获取项目的所有文档。我用includes这样的尝试过

Project.includes({plans: [:documents]})

但当我调用Project.documents时,这似乎并没有给我想要的东西。我真的只想要一个项目的所有文档,所以不需要包含计划。在Rails6中有没有一种简单的方法可以做到这一点?

文档计划之间的关系首先通过项目,因此您可以使用joins,指定文件属于规划以及计划隶属于project。之后,您可以通过选择project_id等于...:的计划(其文档所属(来过滤行

Document.joins(plan: :project).where(plans: { project_id: ... })

相关内容

  • 没有找到相关文章