ruby-on-rails - 如何使用rails查询返回连接表中最常见的外键
问题描述
我有 3 个模型。项目、项目材料和材料
一个项目有_many ProjectMaterials 和许多通过ProjectMaterials 的材料。
这是双向的,ProjectMaterial 充当具有用户可提交属性的连接表。
我想查询 ProjectMaterial 模型以找到最常见的 material_id 值。这样我就可以用它来找到最常用的材料。
任何有关查询的帮助将不胜感激。我被困住了。提前致谢!
解决方案
您可以像这样在 ActiveRecord 查询上链接group
,count
和sort
方法:
ProjectMaterial.group(:material_id).count.values.sort.last
第一部分ProjectMaterial.group(:material_id).count
为您提供每个{material_id0 => rows_count0, material_id1 => rows_count1, ...}
. 然后,您可以只获取数组中哈希的值,对其进行排序并获取最后一项。
推荐阅读
- r - 分别从每列中删除异常值 (3*IQR)
- r - R 中 imputeTS 的 na_kalman() 问题
- python - 我的 anaconda 导航器中没有 altair 包
- c++ - 如何在 wxWidget 中关闭 wxDialog?
- mongoose - 填充似乎没有填充所有数组元素
- javascript - 用于模拟抛物线曲线的 JavaScript 二次函数
- python - 了解如何使用 tf.dataset.map()
- javascript - 如何使用 Javascript 函数将对象美化为 JSON 格式(不使用 JSON.strigify() 方法)
- django - 在 Traefik + Elastic Load Balancer 级别停止 Django Invalid HTTP_HOST 标头错误
- python - 如何在 Plotly 中制作多面图有自己的 YAxes 刻度标签?