152 Stimmen

Ruby on Rails: Abrufen des Maximalwerts aus einer DB-Spalte

Derzeit kann ich die direkte SQL-Abfrage auf meiner DB machen:

SELECT MAX(bar) FROM table_name

Und es wird der Maximalwert aus dieser Tabelle zurückgegeben. Wenn ich das, was ich für einen gleichwertigen Aufruf in Rails halte, mache, funktioniert es jedoch nicht. Ich rufe auf:

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

Dies führt einfach zu einer Antwort:

[#<Bar >]

In der Spalte, die ich aufrufe, befindet sich eine Reihe von Identifikationsnummern, von denen ich die größte suche. Gibt es eine andere Möglichkeit des Zugriffs auf diese in Rails?

331voto

Dylan Markow Punkte 120337

Angenommen, Ihr Modellname lautet Bar und es hat eine Spalte namens bar sollte dies funktionieren:

Bar.maximum(:bar)

Siehe den ausgezeichneten Abschnitt Rails Guides auf Berechnungen :: Maximum für weitere Informationen.

10voto

Manish Kasera Punkte 456

Eine weitere Möglichkeit

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X