3

has_many 関連付けをネストしました

プロジェクトには多くのパーツがあります パーツには多くのタスクがあります タスクには多くのジョブがあります

プロジェクトに関連付けられたすべてのジョブを取得するより良い方法はありますか?

project.parts.each do |p|
  p.tasks.each do |t|
    t.jobs.each do |j|
      ...
    end
  end
end 

ありがとう

4

1 に答える 1

1

モデルでメソッドを定義するときにhas_many、オプションとの関連付けを追加できます。through#jobsProject

例えば ​​:

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
于 2012-10-23T10:54:12.043 に答える