25 Feb '17, 6am

“ActiveRecord::Calculations” https://t.co/4mTqixijnn

This calculates aggregate values in the given column. Methods for count , sum , average , minimum , and maximum have been added as shortcuts. Person.calculate(:count, :all) # The same as Person.count Person.average(:age) # SELECT AVG(age) FROM people... # Selects the minimum age for any family without any minors Person.group(:last_name).having("min(age) > 17").minimum(:age) Person.sum("2 * age") There are two basic forms of output: Single aggregate value: The single value is type cast to Integer for COUNT, Float for AVG, and the given column's type for everything else. Grouped values: This returns an ordered hash of the values and groups them. It takes either a column name, or the name of a belongs_to association. values = Person.group('last_name').maximum(:age) puts values["Drake"] # => 43 drake = Family.find_by(last_name: 'Drake') values = Person.group(:family).maximum(:...

Full article: http://api.rubyonrails.org/classes/ActiveRecord/Calculati...

Tweets