Я разрабатываю в Rails приложение, в котором я хотел бы ранжировать список пользователей на основе их текущих баллов. Таблица выглядит следующим образом: user_id: string, points: integer.
Так как я не могу понять, как это сделать "Путем Rails", я написал следующий код SQL:
self.find_by_sql ['SELECT t1.user_id, t1.points, COUNT(t2.points) as user_rank FROM registrations as t1, registrations as t2 WHERE t1.points <= t2.points OR (t1.points = t2.points AND t1.user_id = t2.user_id) GROUP BY t1.user_id, t1.points ORDER BY t1.points DESC, t1.user_id DESC']
Дело в том, что единственный способ получить доступ к псевдониму столбца "user_rank" - это ранжировать [0] .user_rank, что доставляет мне много головной боли, если я хочу легко отобразить полученную таблицу.
Есть ли лучший вариант?