У меня есть массив пользователей, отсортированный в порядке убывания на основе total_points.
Мне нужно найти ранг каждого пользователя в этом массиве.Проблема заключается в том, что более одного пользователя могут иметь одинаковое количество баллов и, следовательно, один и тот же ранг.Например, три пользователя могут быть на 3-м месте с 200 очками.Вот мой текущий код:
class Leader < ActiveRecord::Base
def self.points_leaders
all_leaders = all_points_leaders # returns array of users sorted by total_points in desc order
all_leaders_with_rank = []
all_leaders.each do |user|
rank = all_leaders.index(user)+1
all_leaders_with_rank << Ldr.new(rank, user) # Ldr is a Struct
end
return all_leaders_with_rank
end
end
Как изменить код так, чтобы возвращался правильный ранг, а не только значение позиции индекса?