我想根據當前收到的投票數得到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解決方案? – 2012-04-16 03:20:06
當然會! – Marc 2012-04-16 04:32:16