prøv dette:
Character.find_by_sql("SELECT *, rank() OVER (ORDER BY points DESC) FROM characters")
det skulle returnere dine Character-objekter med en rank-attribut, som dokumenteret her . Dette er dog muligvis ikke database-agnostisk og har en tendens til at blive rodet, hvis du passerer rundt om objekterne.
en anden (dyr) løsning er at tilføje en rangkolonne til din tabel og få et tilbagekald til at genberegne alle posters rangering ved hjælp af .order, hver gang en post gemmes eller destrueres.
rediger:
en anden idé, der er egnet til enkelt-record-forespørgsler, kan ses her