I wanted to retrieve a users rank in a highscore leaderboard for a game.
Heres the simple way to get the rank.
# Method 1: Quick & Dirty HighScore.order(:score).all.index(some_user) # Method 2: Much more efficient by only getting required column HighScore.order(:score).pluck(:user_id).index(current_user.id) # Method 3: Fastest Method User.where("score <= ?", current_highscore).count
If anyone has a less expensive way of performing this operation I would love to hear about it.
Related External Links: