我有一个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 :(得分:0)
您需要收集工作组并遍历所有工作人员:
current_user.employee.workgroups.each |group| do
group.workorders.each do
...
end
end
答案 1 :(得分:0)
编辑 - 呃,我在想什么。
像这样:
@employee_workorders = Workorder.joins(workgroups: employees).where(employees: { id: current_user.employee })
current_user.employee.workgroups.map(&:workorders).flatten.uniq
应该为您提供一系列工作人员。