Rails sort_by方法有两个字段,一个按升序排序,一个按降序排序

我想渲染部分按分数排序,然后按名称排序(如果多个玩家具有相同的分数)。

现在我正在使用这个:

 

这是有效的,但它按升序对分数进行排序,我想按降序对它们进行排序。 如何翻转分数的排序顺序,而不是名称,我仍然希望按升序排序?

谢谢!

你的问题与渲染部分无关。 你感兴趣的是sort_by方法的行为。 顺便说一句,这应该解决你的问题:

<%= render @players.sort_by { |p| [-p.scored_vote(current_week), p.last_name] } %>