Привет У меня есть система ранжирования, в которой, если у них одинаковый балл или очки, то оба пользователя должны иметь одинаковый ранг.Если бы тот же рейтинг тогда тот же самый ранг в RAILS 3.2
Я получаю его через индекс, но не могу управлять, чтобы сделать их индексы оба равны, если они имеют одинаковое количество очков
user.rb
def get_rank
x = User.get_rank.index(self)
x ? (x + 1) : x
end
def self.get_rank
Response.joins(:answer).where("answers.correct is TRUE").map(&:user).uniq.sort_by(&:score).reject{|me| me.super_admin or me.questions.count < Question.count}.reverse
end
Как я могу сделать пользователь которые имеют одинаковые оценки, чтобы иметь только один аналогичный ранг.
E.g. если оба пользователя получают 25 очков, а 25 - самые высокие из сообщений, то они должны иметь первый ранг.
Любые обходные пути будут оценены
Как насчет того, чтобы получить все баллы и получить индекс этой учетной записи? Однако это кажется довольно неэффективным. Например, вы показываете ранг 1000 пользователей, например. – j03w
Радиус ранга находится в пределах диапазона, скажем, оценка от 0 до 100 - это ранг 1, от 100 до 500 ранга 2, бла-бла. Если ранг такой же, как и оценка, нет необходимости в ранжировании, достаточно использовать счет. –
Итак, я должен реализовать диапазон? – xirukitepe