Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
假设我有User一个名为point.
User
point
User与所有其他行相比,如何获得实例的排名。
用户的排名可以被认为是比他们多的其他用户的数量加上 1。正如 Mischa 在评论中指出的那样,一个合适的位置是在 User 模型本身中,如下所示:
def ranking User.where('point > ?', point).count + 1 end
然后,您可以将其称为:
Rank: <%= @user.ranking %>
这样做的缺点是在相同排名中对具有相同点数的用户进行排名。你必须为这种情况决定一个“决胜局”。