method

reverse_sql_order

reverse_sql_order(order_query)
private

No documentation available.

# 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/, " DESC") || s.gsub!(/\sdesc\Z/, " ASC") || (s << " DESC")
            end
          else
            o
          end
        end
      end