2013-05-17 138 views
0

我有一個具有以下模型的Rails應用程序。 empgroup用於工作組和員工之間的多對多關係。使用活動記錄選擇具有多對多關係的記錄

employee.rb

has_many :empgroups 
    has_many :workgroups, through: :empgroups 

empgroup.rb

belongs_to :employee 
    belongs_to :workgroup 

workgroup.rb

has_many :empgroups 
    has_many :employees, through: :empgroups 
    has_many :workorders 

我想工作訂單分配給工作組的索引列表僱員屬於。

我希望這會工作,但事與願違:

current_user.employee.workgroups.workorders.each do 

它給了我:

undefined method `workorders' 

所以,我想一個joins,但它不工作要麼是:

Workorders.joins(:workgroups => :employees).where(employee_id = current_user.employee).each do 

謝謝!

回答

0

您需要通過所有工作訂單收集的工作組和迭代:

current_user.employee.workgroups.each |group| do 
    group.workorders.each do 
    ... 
    end 
end 
+0

謝謝 - 這工作! – DBurton

0

編輯 - 唉,我在想什麼。

像這樣:

@employee_workorders = Workorder.joins(workgroups: employees).where(employees: { id: current_user.employee }) 

current_user.employee.workgroups.map(&:workorders).flatten.uniq 

應該給你的工作訂單的數組。