Module: ActiveRecord::DistinctOn
- Defined in:
- lib/active_record/query_methods.rb
Overview
Prepended onto ActiveRecord::QueryMethods rather than reopening it, so these methods don't appear in QueryMethods.public_instance_methods(false) -- which Rails' QueryingMethodsDelegationTest asserts against -- while relations still respond to them.
Instance Method Summary collapse
- #distinct_on(*fields) ⇒ Object (also: #uniq_on)
- #distinct_on!(*fields) ⇒ Object (also: #uniq_on!)
- #distinct_on_values ⇒ Object
- #distinct_on_values=(value) ⇒ Object
Instance Method Details
#distinct_on(*fields) ⇒ Object Also known as: uniq_on
22 23 24 |
# File 'lib/active_record/query_methods.rb', line 22 def distinct_on(*fields) spawn.distinct_on!(*fields) end |
#distinct_on!(*fields) ⇒ Object Also known as: uniq_on!
27 28 29 30 31 |
# File 'lib/active_record/query_methods.rb', line 27 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 |
#distinct_on_values ⇒ Object
14 15 16 |
# File 'lib/active_record/query_methods.rb', line 14 def distinct_on_values @values["distinct_on_values"] || [] end |
#distinct_on_values=(value) ⇒ Object
18 19 20 |
# File 'lib/active_record/query_methods.rb', line 18 def distinct_on_values=(value) @values["distinct_on_values"] = value end |