mysql - Rails 从两个表中的关联加入

标签 mysql ruby-on-rails ruby join associations

我要表:同事和部门

一个员工属于一个部门(belongs_to),一个部门有多个员工(has_many)

我'试图做的是计算每个部门的员工数量并用数据制作饼图,我得到的图表使用一些基本的东西(Department.count)

我刚开始使用 Rails,但遇到查询问题

Associate.joins(:department).group(:name).count

我得到的是以下内容

Mysql2::Error: Column 'name' in field list is ambiguous: SELECT COUNT(*) AS count_all, name AS name FROM associates INNER JOIN departments ON departments.id = associates.department_id GROUP BY name

我试过选择、查找,但我似乎做对了

最佳答案

如果你的关联设置正确,我相信你应该能够做这样的事情:

Department.find(<some_id>).associates.count

或者,如果您拥有所有部门,并且正在遍历它们,比方说在一个 View 中并且您想要获得所有计数,您可以执行如下操作:

@departments = Deparment.all

@departments.each do |department|
  department.associates.count
end

您的关联表需要一个 department_id 列。

关于mysql - Rails 从两个表中的关联加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20621998/

相关文章:

php - ajax方法发布不起作用

MySql无法创建用户

ruby-on-rails - 在 Ruby on Rails 中显示图表

ruby - 如何查找以字符串形式给出确切 HTML 标记的节点(使用 Nokogiri)?

ruby - 什么!是指在 Ruby 方法定义的末尾?

mysql - 如何在mysql工作台中更改用户

php - 当我尝试插入到表中时,如何修复当前位置的错误?

ruby-on-rails - 按日期范围对记录进行分组并在 Rails 中对其进行计数

ruby-on-rails - 翻译设计登录链接

ruby-on-rails - 避免在映射变量中使用引号