我正在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,如果我想要輕鬆顯示結果表,讓我頭痛不已。
有更好的選擇嗎?