Ruby on rails 如何在联接表中按值之和设置顺序

Ruby on rails 如何在联接表中按值之和设置顺序,ruby-on-rails,join,controller,sum,Ruby On Rails,Join,Controller,Sum,我正在尝试在视图中创建引线表。我正在显示一个所有用户的列表,每个用户可以输入1个或多个事件(用户通过=>results拥有并属于多个事件),每个结果是:在相对事件中赢得的分数 我写控制器时遇到问题。我想要一些能起作用的东西 @standings = User.find(:all, :order => 'User.results.points.sum'); 因此,所有用户的列表按每个用户结果中的点数总和的顺序排列 (我知道上面的代码还有很长的路要走——这只是我试图说明我所追求的) 如果有人

我正在尝试在视图中创建引线表。我正在显示一个所有用户的列表,每个用户可以输入1个或多个事件(用户通过=>results拥有并属于多个事件),每个结果是:在相对事件中赢得的分数

我写控制器时遇到问题。我想要一些能起作用的东西

@standings = User.find(:all, :order => 'User.results.points.sum');
因此,所有用户的列表按每个用户结果中的点数总和的顺序排列

(我知道上面的代码还有很长的路要走——这只是我试图说明我所追求的)


如果有人能给我一些最好的建议,我将不胜感激。

如下:

User.joins(:results).group("users.id").order("SUM(results.points)")
将用户加入结果表,按用户分组,然后按results.points之和排序

然后,如果您希望首先获得最高分数,您可以这样调整顺序:

User.joins(:results).group("users.id").order("SUM(results.points) DESC")