0

我有一个具有以下模型的 Rails 应用程序。empgroup 用于工作组和员工之间的多对多关系。

员工.rb

  has_many :empgroups
  has_many :workgroups, through: :empgroups

工作组.rb

  belongs_to :employee
  belongs_to :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

谢谢!

4

2 回答 2

0

编辑- 呃,我在想什么。

像这样:

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

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

应该给你一个工作单数组。

于 2013-05-17T14:50:47.480 回答
0

您需要收集工作组并遍历所有工作订单:

current_user.employee.workgroups.each |group| do
  group.workorders.each do
    ...
  end
end
于 2013-05-17T14:34:16.897 回答