module ActiveRecord::Calculations
Public Instance Methods
distinct_value()
click to toggle source
# File lib/left_joins_for_rails_3.rb, line 13 def distinct_value uniq_value end
distinct_value=(v)
click to toggle source
# File lib/left_joins_for_rails_3.rb, line 17 def distinct_value=(v) self.uniq_value = v end
perform_calculation(operation, column_name, options = {})
click to toggle source
This method is copied from activerecord-4.2.10/lib/active_record/relation/calculations.rb and modified this line `distinct = true` to `distinct = true if distinct == nil`
# File lib/left_joins.rb, line 98 def perform_calculation(operation, column_name, options = {}) # TODO: Remove options argument as soon we remove support to # activerecord-deprecated_finders. operation = operation.to_s.downcase # If #count is used with #distinct / #uniq it is considered distinct. (eg. relation.distinct.count) distinct = options[:distinct] || self.distinct_value if operation == "count" column_name ||= (select_for_count || :all) unless arel.ast.grep(Arel::Nodes::OuterJoin).empty? distinct = true if distinct == nil end column_name = primary_key if column_name == :all && distinct distinct = nil if column_name =~ /\s*DISTINCT[\s(]+/i end if group_values.any? execute_grouped_calculation(operation, column_name, distinct) else execute_simple_calculation(operation, column_name, distinct) end end