136 votes

Ruby on Rails: obtenir la valeur maximale d'une colonne de base de données

Actuellement, je peux faire l'straight-up requête SQL sur ma DB:

SELECT MAX(bar) FROM table_name

Et il revient avec la valeur maxi dans la table. Quand je fais ce que je considère être un appel équivalent dans les Rails, cependant, il ne fonctionne pas. Je suis d'appel:

Bar.all(:select => "Max(bar)")

Cela revient tout simplement avec:

[#<Bar >]

Dans la colonne, je vais appeler sur une série de numéros d'identification, je suis à la recherche de la plus grande. Est-il un autre moyen d'accéder à ce dans les Rails?

295voto

Dylan Markow Points 65796

En supposant que le nom de votre modèle est Bar et que sa colonne s'appelle bar , cela devrait fonctionner:

 Bar.maximum("bar")
 

Voir l'excellente section Rails Guides sur Calculs pour plus d'informations.

8voto

user1312806 Points 129

une autre façon

 Bar.select("Max(bar) as max_bar").first.max_bar
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X