2012-10-23 142 views
3

我有嵌套has_many关联导航嵌套的has_many

项目有很多部分 部分有许多任务 任务有许多工作

有没有更好的方式来获得比

关联到一个项目中的所有作业
project.parts.each do |p| 
    p.tasks.each do |t| 
    t.jobs.each do |j| 
     ... 
    end 
    end 
end 

感谢

回答

1

你可能会与添加has_many协会选项,而您在Project模型中定义#jobs方法。

例如:

class Project < ActiveRecord::Base 
    has_many :parts 
    has_many :tasks, through: :parts 

    def jobs 
    jobs = [] 
    tasks.each {|t| jobs << t.jobs } 
    jobs.flatten 
    end 
end 
+0

谢谢,我可能会尝试类似的东西。我实际上有4个模型嵌套在一起(不是三个),但这个想法是一样的。 – macsig