Ruby on Rails: getting the max value from a DB column

Currently I can make the straight-up SQL query on my DB:

SELECT MAX(bar) FROM table_name

And it returns with the max value in that table. When I make what I consider to be an equivalent call in Rails, however, it does not work. I am calling:

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

This simply returns with:

[#<Bar >]

In the column I'm calling on is a series of identifying numbers, I'm looking for the largest one. Is there some other way of accessing this in Rails?


Assuming your model name is Bar and it has a column named bar, this should work:

Bar.maximum("bar")

See the excellent Rails Guides section on Calculations for more info.


one more way

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