title: Order array. undefined method `order' for Array. Convert array into hash?
body: <p>I have a City model and in city's show action I want to render hotels nearby specific locations in the city. Cities has_many locations; hotels are being searched using Geocoder near method.</p>
  
  <p>To add order functionality I've followed Ryan Bates <a href="http://asciicasts.com/episodes/228-sortable-table-columns" rel="noreferrer">screencasts #228</a>, but this approach doesn't seem to work with arrays, giving error <code>undefined method `order' for #&lt; Array:0x007f960d003430></code></p>
  
  <pre><code>cities_controller.rb
  
  helper_method :sort_column, :sort_direction
  def show
    session[:search_radius] = 2 if session[:search_radius].blank?
    @city = City.find(params[:id])
    @locations = @city.locations
    @hotels = []
    @locations.each do |location|
      unless location.longitude.blank? || location.latitude.blank? 
        center_point = [location.latitude, location.longitude]
        box = Geocoder::Calculations.bounding_box(center_point, session[:search_radius])
        thotels = Hotel.near(center_point, session[:search_radius]).within_bounding_box(box)
      else
        thotels = Hotel.near(center_point, session[:search_radius])
      end
      @hotels += thotels if thotels
      @hotels = @hotels.uniq
    end
    @hotels = @hotels.order(sort_column + " " + sort_direction).paginate(:page =&gt; params[:page], :per_page =&gt; 5)
    @json = @locations.to_gmaps4rails
  
    respond_with @json, :location =&gt; city_url
  end
  
  
  private
  
    def sort_column
      Hotel.column_names.include?(params[:sort]) ? params[:sort] : "name"
    end
  
    def sort_direction
      %w[asc desc].include?(params[:direction]) ? params[:direction] : "asc"
    end
  </code></pre>
  
  <p>My question is: should I concentrate in converting an array into hash or should I initially create hash of hotels, or maybe find completely different approach to perform sorting?</p>