我正在Rails中开发一个应用程序,我希望根据用户当前的要点对用户列表进行排名。该表如下所示:user_id:string,points:integer。 因为我无法弄清楚如何做到这一点“Rails的路”,我写了下面的SQL代码:ActiveRecord和SELECT AS 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,如果我想要轻松显示结果表,让我头痛不已。
有更好的选择吗?