instance method
reverse_sql_order
Ruby on Rails 8.1.2
Since v3.0.20 PrivateSignature
reverse_sql_order(order_query)
No documentation comment.
Parameters
-
order_queryreq
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 2013
def reverse_sql_order(order_query)
if order_query.empty?
if !_reverse_order_columns.empty?
return _reverse_order_columns.map { |column| table[column].desc }
end
raise IrreversibleOrderError, <<~MSG.squish
Relation has no order values, and #{model} has no order columns to use as a default.
Set at least one of `implicit_order_column`, or `primary_key` on the model when no
`order `is specified on the relation.
MSG
end
order_query.flat_map do |o|
case o
when Arel::Attribute
o.desc
when Arel::Nodes::Ordering
o.reverse
when Arel::Nodes::NodeExpression
o.desc
when String
if does_not_support_reverse?(o)
raise IrreversibleOrderError, "Order #{o.inspect} cannot be reversed automatically"
end
o.split(",").map! do |s|
s.strip!
s.gsub!(/\sasc\Z/i, " DESC") || s.gsub!(/\sdesc\Z/i, " ASC") || (s << " DESC")
end
else
o
end
end
end
Defined in activerecord/lib/active_record/relation/query_methods.rb line 2013
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::QueryMethods