私は現在のポイントに基づいてユーザのリストをランク付けするアプリケーションを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を実行することです。
もっと良い選択肢はありますか?