Search code examples
ruby-on-railsrails-activerecord

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?


Solution

  • 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 :: Maximum for more info.