instance method
sum
Ruby on Rails 7.1.6
Since v3.0.20Signature
sum(initial_value_or_column = 0, &block)
Calculates the sum of values on a given column. The value is returned with the same data type of the column, 0 if there’s no row. See #calculate for examples with options.
Person.sum(:age) # => 4562
When given a block, loads all records in the relation, if the relation hasn’t been loaded yet. Calls the block with each record in the relation. Returns the sum of initial_value_or_column and the block return values:
Person.sum { |person| person.age } # => 4562 Person.sum(1000) { |person| person.age } # => 5562
Note: If there are a lot of records in the relation, loading all records could result in performance issues.
Parameters
-
initial_value_or_columnopt = 0 -
blockblock
Source
# File activerecord/lib/active_record/relation/calculations.rb, line 172
def sum(initial_value_or_column = 0, &block)
if block_given?
map(&block).sum(initial_value_or_column)
else
calculate(:sum, initial_value_or_column)
end
end
Defined in activerecord/lib/active_record/relation/calculations.rb line 172
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Calculations