首页 > 解决方案 > 如何使用rails查询返回连接表中最常见的外键

问题描述

我有 3 个模型。项目、项目材料和材料

一个项目有_many ProjectMaterials 和许多通过ProjectMaterials 的材料。

这是双向的,ProjectMaterial 充当具有用户可提交属性的连接表。

我想查询 ProjectMaterial 模型以找到最常见的 material_id 值。这样我就可以用它来找到最常用的材料。

任何有关查询的帮助将不胜感激。我被困住了。提前致谢!

标签: ruby-on-railsarel

解决方案


您可以像这样在 ActiveRecord 查询上链接group,countsort方法:

ProjectMaterial.group(:material_id).count.values.sort.last

第一部分ProjectMaterial.group(:material_id).count为您提供每个{material_id0 => rows_count0, material_id1 => rows_count1, ...}. 然后,您可以只获取数组中哈希的值,对其进行排序并获取最后一项。


推荐阅读