web-dev-qa-db-fra.com

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

Actuellement, je peux effectuer une requête SQL directe sur ma base de données:

SELECT MAX(bar) FROM table_name

Et il retourne avec la valeur maximale dans cette table. Lorsque je passe ce que je considère être un appel équivalent dans Rails, toutefois, cela ne fonctionne pas. J'appelle:

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

Cela revient simplement avec:

[#<Bar >]

Dans la colonne que je vous appelle est une série de numéros d'identification, je cherche le plus grand. Existe-t-il un autre moyen d'accéder à cela dans Rails?

109
keybored

En supposant que votre nom de modèle soit Bar et que sa colonne est nommée bar, cela devrait fonctionner:

Bar.maximum("bar")

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

242
Dylan Markow

une autre façon

Bar.select("Max(bar) as max_bar").first.max_bar
2
Manish Kasera