0

有一个Project模型,拥有并属于Associate_project:Project模型的别名,拥有并属于多个文档。

class Project < ActiveRecord::Base
  # Project to Proejct associations
  # parent project => associate projects = @project.associate_projects
  has_and_belongs_to_many :associate_projects, 
    :foreign_key => 'project_id', 
    :association_foreign_key => 'associate_project_id', 
    :join_table => 'associate_projects_projects',
    :class_name => 'Project', 
    :after_add => :increment_counters, 
    :after_remove => :decrement_counters

  # associate projects => parent projects = @project.projects
  has_and_belongs_to_many :projects, 
    :foreign_key => 'associate_project_id',
    :association_foreign_key => 'project_id',
    :join_table => 'associate_projects_projects'

  has_and_belongs_to_many :docs

end


项目模型可以有后代项目,并且可以有多少个后代没有限制。

项目编号:1

 项目编号:2
   文档 ID:1 project_id:2

   项目编号:4
     文档 id:3 project_id:4


 项目编号:3
   文档 id:2 project_id:3

   项目编号:4
     文档 id:3 project_id:4

项目 2,3 属于项目 1,项目 4 属于项目 2 和 3。
在这种情况下,我想将属于项目 2、3 和 4 的文档计为项目 1 的文档。Project 的文档数必须为 3,因为文档 3 是重复的。

有没有办法计算无限嵌套子项目的所有文档计数?
我想这是不可能的,因为可以有多少后代没有限制......

4

0 回答 0