有一个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 是重复的。
有没有办法计算无限嵌套子项目的所有文档计数?
我想这是不可能的,因为可以有多少后代没有限制......