Module: ActiveRecord::QueryMethods

Defined in:
lib/composite_primary_keys/query_methods.rb

Instance Method Summary collapse

Instance Method Details

#reverse_orderObject



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/composite_primary_keys/query_methods.rb', line 3

def reverse_order
  order_clause = arel.order_clauses.join(', ')
  relation = except(:order)

  # CPK
  # order = order_clause.blank? ?
  #  "#{@klass.table_name}.#{@klass.primary_key} DESC" :
  #  reverse_sql_order(order_clause)

  order = unless order_clause.blank?
    reverse_sql_order(order_clause)
  else
    primary_keys = composite? ? @klass.primary_keys : [@klass.primary_key]
    primary_keys.map do |key|
      "#{@klass.table_name}.#{key} DESC"
    end.join(", ")
  end

  relation.order Arel::SqlLiteral.new order
end