我需要表格:员工和部门
一个员工属于一个部门(belongs_to),一个部门有多个员工(has_many)
我想做的是计算每个部门的员工数量,并用数据制作饼图,我让图表使用基本的东西(Department.count)
我刚开始使用rails,我遇到了查询问题
Associate.joins(:department).group(:name).count
我得到的是以下
Mysql2 ::错误:字段列表中的列'名称'不明确:SELECT COUNT(*)AS count_all,name AS name FROM
associates
INNER JOINdepartments
ONdepartments
。{ {1}} =id
。associates
GROUP BY名称
我尝试做一个选择,找到并且我似乎无法做到正确
答案 0 :(得分:0)
如果您的关联设置正确,我相信您应该能够做到这样的事情:
Department.find(<some_id>).associates.count
或者如果你有所有的部门,并且你正在循环它们,让我们在一个视图中说,你想得到所有的计数,你可以做这样的事情:
@departments = Deparment.all
@departments.each do |department|
department.associates.count
end
您的关联表格上需要department_id
列。
答案 1 :(得分:0)
正如您对帖子的评论所述,您必须通过指定表来解决模糊的name
归因。您可以使用建议的字符串,也可以将块传递给group_by
:
Associate.joins(:department).group_by(&:name).count