instance method
perform_calculation
Ruby on Rails 7.0.10
Since v3.0.20 PrivateSignature
perform_calculation(operation, column_name)
No documentation comment.
Parameters
-
operationreq -
column_namereq
Source
# File activerecord/lib/active_record/relation/calculations.rb, line 296
def perform_calculation(operation, column_name)
operation = operation.to_s.downcase
# If #count is used with #distinct (i.e. `relation.distinct.count`) it is
# considered distinct.
distinct = distinct_value
if operation == "count"
column_name ||= select_for_count
if column_name == :all
if !distinct
distinct = distinct_select?(select_for_count) if group_values.empty?
elsif group_values.any? || select_values.empty? && order_values.empty?
column_name = primary_key
end
elsif distinct_select?(column_name)
distinct = nil
end
end
if group_values.any?
execute_grouped_calculation(operation, column_name, distinct)
else
execute_simple_calculation(operation, column_name, distinct)
end
end
Defined in activerecord/lib/active_record/relation/calculations.rb line 296
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::Calculations