У меня есть массив пользователей, отсортированный по убыванию в зависимости от total_points.Подсчет различных и повторяющихся значений атрибутов в массиве
Мне нужно найти ранг каждого пользователя в этом массиве. Проблема в том, что более одного пользователя могут иметь одинаковые общие точки и, таким образом, одинаковый ранг. Например, три пользователя могут быть на третьем месте с 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
Как я должен изменить код так, что правильный ранг возвращается, а не только значение позиции индекса?