2009-09-13 10 views
0

Dans ruby ​​on rails comment puis-je trouver les 3 premiers enregistrements de ma table appelés classements ordonnés par un champ particulier, dans mon cas je veux commander par le champ de position qui est un nombre entier .Top 3 enregistrements classés par un champ dans les rails

table pour Mes avis ressemble à ceci:

Toute aide serait grandement apprécié.

Répondre

4

Considérant que vous avez la classe Avis ActiveRecord, cela devrait faire: Notice.find(:all, :limit => 3, :order => 'particularField')

2

Tu ferais quelque chose comme:

Notice.find(:all,:order => "position", :limit => 3) 

qui apporterait les 3 premiers enregistrements commandés par la position (dans cet exemple, les positions 1,2,3 ou les premiers moins Vous pouvez changer l'ordre. valeur à "position DESC" si vous voulez les positions 20,19,18, par exemple).

Bonne chance!

+0

grâce yaraher, votre réponse a travaillé, mais je lui ai donné la bonne réponse à Eimantas, comme vous n'avez pas besoin la partie « ASC ». – conspirisi

+0

Pas de soucis. Veillez à noter que vous devrez spécifier ASC ou DESC lorsque vous travaillez avec des requêtes plus complexes, il est donc toujours bon de savoir qu'il peut être présent. – Yaraher

+1

vous ne devez pas spécifier ASC, jamais. C'est impliqué par la clause d'ordre. –

Questions connexes