method
perform_calculation
v3.0.0 -
Show latest stable
- Class:
ActiveRecord::Calculations
perform_calculation(operation, column_name, options = {})private
No documentation available.
# File activerecord/lib/active_record/relation/calculations.rb, line 161
def perform_calculation(operation, column_name, options = {})
operation = operation.to_s.downcase
distinct = nil
if operation == "count"
column_name ||= (select_for_count || :all)
if arel.joins(arel) =~ /LEFT OUTER/i
distinct = true
column_name = @klass.primary_key if column_name == :all
end
distinct = nil if column_name =~ /\s*DISTINCT\s+/i
end
distinct = options[:distinct] || distinct
column_name = :all if column_name.blank? && operation == "count"
if @group_values.any?
return execute_grouped_calculation(operation, column_name)
else
return execute_simple_calculation(operation, column_name, distinct)
end
end