例如,Factory has_many Worker 通过 JobRole。
工厂型号:
has_many :workers, through: :job_roles
工人模型:
has_many :job_roles
has_many :factories, through: :job_roles
工作角色模型:
belongs_to :worker
belongs_to :factory
询问:
factory.job_roles.where(heavy_lifting:true, sensitive_area: false).workers.where.not(confirmed_at:nil).pluck(:work_capacity)
第一个.where
查询是 ActiveRelation,调用.workers
它失败。
我需要提取工厂内具有特定工作角色的工人的工作能力。
除了循环第一个查询将工作人员的工作能力放入数组之外,还有什么方法可以做到这一点?
IE:
applicable_job roles = factory.job_roles.where(heavy_lifting:true, sensitive_area: false)
work_capacities = []
applicable_job_roles.each do |job_role|
if job_role.confirmed_at != nil
work_capacities << job_role.work_capacity
end
1 个回答