通过关联选择具有最高计数的模型

时间:2018-01-23 15:15:34

标签: ruby-on-rails activerecord

您好我有两个型号reportreport_day_count

report有许多report_day_countsreport_day_count属于report,并且有一个名为count的属性。

我想按报告_day_count计数的总和对报告进行排序,但我不确定如何使用有效记录来执行此操作。

我试过了:

    report.joins(:report_day_counts).sum(:count)

但这只是将所有计数加在一起。

2 个答案:

答案 0 :(得分:1)

它应该是这样的

Report.joins(:report_day_count).group('report.id').order('SUM(report_day_counts.count')

答案 1 :(得分:1)

尝试以下方法:

Report
  .left_outer_joins(:report_day_counts)
  .group('reports.id')
  .select('reports.*, SUM(report_day_counts.count) AS report_day_counts_sum')
  .order('report_day_counts_sum DESC')