module ActiveRecord::QueryMethods

Public Instance Methods

build_arel(aliases = nil)
build_arel_with_distinct_on(aliases = nil) click to toggle source
# File lib/active_record/query_methods.rb, line 27
def build_arel_with_distinct_on(aliases = nil)
  arel = build_arel_without_distinct_on(aliases)
  arel.distinct_on(self.distinct_on_values) if !self.distinct_on_values.empty?
  arel
end
Also aliased as: build_arel
build_arel_without_distinct_on(aliases = nil)
Alias for: build_arel
distinct_on(*fields) click to toggle source
# File lib/active_record/query_methods.rb, line 15
def distinct_on(*fields)
  spawn.distinct_on!(*fields)
end
Also aliased as: uniq_on
distinct_on!(*fields) click to toggle source
# File lib/active_record/query_methods.rb, line 20
def distinct_on!(*fields)
  fields.flatten!
  self.distinct_on_values = fields.map { |x| x.is_a?(Arel::Attributes::Attribute) ? x : klass.arel_table[x] }
  self
end
Also aliased as: uniq_on!
distinct_on_values() click to toggle source
# File lib/active_record/query_methods.rb, line 7
def distinct_on_values
  @values["distinct_on_values"] || []
end
distinct_on_values=(value) click to toggle source
# File lib/active_record/query_methods.rb, line 11
def distinct_on_values=(value)
  @values["distinct_on_values"] = value
end
uniq_on(*fields)
Alias for: distinct_on
uniq_on!(*fields)
Alias for: distinct_on!