2010-12-15 39 views
0

J'utilise Geokit. J'ai ce qui suit dans mon modèle:Geokit en Ruby on Rails, chercheur de distance, comment trier par le plus proche de la plus éloignée?

# Distance-based finder method 
    # Usage: 
    # - find_this_within(Shop.first, 10) 
    def self.find_this_within(origin, within) 
    if origin.geocoded? 
     find(:all, :origin => origin, :within => within) 
    else 
     [] 
    end 
    end 

Puis, dans mon contrôleur:

@shops = s.paginate(:page => params[:page], :per_page => 20) 

Actuellement, la sortie est listé dans ID ascendant. Je veux que ce soit le plus proche du plus éloigné. Que devrais-je faire?

Merci.

Répondre

0

Je crois que ce que vous cherchez est:

def self.find_this_within(origin, within) 
    if origin.geocoded? 
     find(:all, :origin => origin, :within => within, :order => 'distance asc') 
    else 
     [] 
    end 
    end 

Ou disent les Docs: http://geokit.rubyforge.org/