module ActiveRecord

  class Base

    private

    def self.add_order!(sql, order, scope = :auto)
      scope = scope(:find) if :auto == scope
      scoped_order = scope[:order] if scope
      if order
        sql << " ORDER BY #{connection.order(order)}"
        sql << ", #{connection.order(scoped_order)}" if scoped_order
      else
        sql << " ORDER BY #{connection.order(scoped_order)}" if scoped_order
      end
    end
  end

end

module ActiveRecord::ConnectionAdapters
  class AbstractAdapter  
    def order(order)
      if order.class == Symbol
        case order
          when :random then "RANDOM()"
          else order.to_s
        end
      else
        order
      end
    end
  end
end

module ActiveRecord::ConnectionAdapters
  class MysqlAdapter  
    def order(order)
      if order.class == Symbol
        case order
          when :random then "RAND()"
          else order.to_s
        end
      else
        order
      end
    end
  end
end