aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
diff options
context:
space:
mode:
authorRyuta Kamizono <kamipo@gmail.com>2017-03-10 22:25:00 +0900
committerRyuta Kamizono <kamipo@gmail.com>2017-03-10 22:25:00 +0900
commitc4c8d808d0054dff9bf6e783638b8ea2f3499da1 (patch)
treeb4c433fcf5fc05073b81ba12a7a55889ea944eef /activerecord
parentc8c1460f7a97c15dff641a30e63914991d407595 (diff)
downloadrails-c4c8d808d0054dff9bf6e783638b8ea2f3499da1.tar.gz
rails-c4c8d808d0054dff9bf6e783638b8ea2f3499da1.tar.bz2
rails-c4c8d808d0054dff9bf6e783638b8ea2f3499da1.zip
Simply forward `Calculations#count` to `Enumerable#count`
Follow up of #24203. Since b644964b `ActiveRecord::Relation` includes `Enumerable` so it is enough to call `super` simply.
Diffstat (limited to 'activerecord')
-rw-r--r--activerecord/lib/active_record/relation/calculations.rb11
1 files changed, 4 insertions, 7 deletions
diff --git a/activerecord/lib/active_record/relation/calculations.rb b/activerecord/lib/active_record/relation/calculations.rb
index f4cdaf3948..9cabd1af13 100644
--- a/activerecord/lib/active_record/relation/calculations.rb
+++ b/activerecord/lib/active_record/relation/calculations.rb
@@ -37,11 +37,8 @@ module ActiveRecord
# Note: not all valid {Relation#select}[rdoc-ref:QueryMethods#select] expressions are valid #count expressions. The specifics differ
# between databases. In invalid cases, an error from the database is thrown.
def count(column_name = nil)
- if block_given?
- to_a.count { |*block_args| yield(*block_args) }
- else
- calculate(:count, column_name)
- end
+ return super() if block_given?
+ calculate(:count, column_name)
end
# Calculates the average value on a given column. Returns +nil+ if there's
@@ -75,8 +72,8 @@ module ActiveRecord
# #calculate for examples with options.
#
# Person.sum(:age) # => 4562
- def sum(column_name = nil, &block)
- return super(&block) if block_given?
+ def sum(column_name = nil)
+ return super() if block_given?
calculate(:sum, column_name)
end