Я пытаюсь получить ранг объекта 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> ГОЛОСОВ. Мне нужно заменить «> голоса», с некоторой ссылкой на себя. Не уверен, что это понятно. Есть идеи?
Поможет обеспечить SQL решение для этого? –
, конечно, было бы! – Marc