我正在创建一个用户可以提交多个条目的比赛。只显示吨位最高的入口。在索引视图中,所有条目都必须根据吨位值降序排序。
我的提交控制器显示以下内容:
@submissions = @contest.submissions.maximum(:tonnage, group: User)
这里的问题是我没有得到所有提交值的数组。我需要一些可以迭代的东西。
e.g。一个列表,其中只包含一个来自用户的提交,该提交是具有最高吨位值的提交。
当我刚刚分组时,我得到以下错误:
GroupingError: ERROR: column "submissions.id" must appear in the GROUP BY clause or be used in an aggregate function
LINE 1: SELECT "submissions".* FROM "submissions" WHERE "submission...
更新:
我发现了一个sql查询,它大概做了我想做的事。
select *
from submissions a
inner join
( select user_id, max(tonnage) as max_tonnage
from submissions
group by user_id) b
on
a.user_id = b.user_id and
a.tonnage = b.max_tonnage
如何在activerecord中修复此问题?