0

假设我有User一个名为point.

User与所有其他行相比,如何获得实例的排名。

4

1 回答 1

2

用户的排名可以被认为是比他们多的其他用户的数量加上 1。正如 Mischa 在评论中指出的那样,一个合适的位置是在 User 模型本身中,如下所示:

def ranking
   User.where('point > ?', point).count + 1
end

然后,您可以将其称为:

Rank: <%= @user.ranking %>

这样做的缺点是在相同排名中对具有相同点数的用户进行排名。你必须为这种情况决定一个“决胜局”。

于 2013-03-29T06:06:59.123 回答