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

时间:2013-10-25 01:57:37

标签: ruby-on-rails ruby

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

现在我正在使用它:

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

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

谢谢!

1 个答案:

答案 0 :(得分:13)

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

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