私はactiverecordオブジェクトのランクを現在受け取った投票数に基づいて取得しようとしています。ランクを返しmysqlのエントリのランクを取得します。
Object.count(:conditions => ['votes > (?)', self.votes], :distinct => true) + 1
:私のオブジェクトモデルでは、私は以下のように定義する方法「ランク」を持っています。しかし、私のプログラムのどこかで、私は実際にはmysqlクエリ自体でこれを取得する必要があることがわかりました。私は以下のような何かを試してみたかった:
Object.select('id, votes, (SELECT COUNT(DISTINCT "objects"."id")
FROM "objects"
WHERE "objects"."votes" > votes) AS rank').limit(10)
しかし、私は「objects.votes>票」の部分を行う方法を知りません。私は '> votes'を置き換える必要があります。それが明確かどうかはわかりません。何か案は?
それは、このためのSQLソリューションを提供するのに役立ちますか? –
もちろんです! – Marc