ext/active_record/base.rb
def sort(*ordering)
      resource = all
      ordering.compact!
      ordering.flatten!
      return resource if ordering.size == 0
      
      ordering.each do |order|
        order = Array(order)

        order.each do |column_or_relation, options|
          if column_or_relation.to_sym == :random
            resource = resource.random_sort
          elsif self.column_names.include?(column_or_relation.to_s)
            resource = resource.sort_for_column(column_or_relation, options)
          elsif reflect_on_association(column_or_relation.to_sym)
            resource = resource.select(resource.klass.arel_table[Arel::Nodes::SqlLiteral.new('*')])
            resource = resource.sort_for_relation(column_or_relation.to_sym, options)
          else
            raise ActiveRecord::StatementInvalid.new("Unkown column #{column_or_relation}")
          end
        end
      end

      resource
    end
def sort(*ordering)
      resource = all
      ordering.compact!
      ordering.flatten!
      return resource if ordering.size == 0
      
      ordering.each do |order|
        order = Array(order)

        order.each do |column_or_relation, options|
          if column_or_relation.to_sym == :random
            resource = resource.random_sort
          elsif self.column_names.include?(column_or_relation.to_s)
            resource = resource.sort_for_column(column_or_relation, options)
          elsif reflect_on_association(column_or_relation.to_sym)
            resource = resource.select(resource.klass.arel_table[Arel::Nodes::SqlLiteral.new('*')])
            resource = resource.sort_for_relation(column_or_relation.to_sym, options)
          else
            raise ActiveRecord::StatementInvalid.new("Unkown column #{column_or_relation}")
          end
        end
      end

      resource
    end
def sort ( * ordering ) resource = all ordering . compact! ordering . flatten! return resource if ordering . size == 0 ordering . each do | order | order = Array ( order ) order . each do | column_or_relation , options | if column_or_relation . to_sym == :random resource = resource . random_sort elsif self . column_names . include? ( column_or_relation . to_s ) resource = resource . sort_for_column ( column_or_relation , options ) elsif reflect_on_association ( column_or_relation . to_sym ) resource = resource . select ( resource . klass . arel_table [ Arel :: Nodes :: SqlLiteral . new ( '*' ) ] ) resource = resource . sort_for_relation ( column_or_relation . to_sym , options ) else raise ActiveRecord :: StatementInvalid . new ( "Unkown column #{column_or_relation}" ) end end end resource end
class << self
 ordering:
 :id
 :name, :id
 :id => :desc
 :id => {:desc => :nulls_last}
 :listings => :id
 :listings => {:id => {:asc => :nulls_first}}
 :random
class << self ordering : : id : name : id : id = > : desc : id = > { : desc = > : nulls_last } : listings = > : id : listings = > { : id = > { : asc = > : nulls_first }} : random