2012-12-20 4 views
7

Ich habe dieses ausgezeichnete Juwel https://github.com/alexreisner/geocoder funktioniert gut in meiner App, aber ich muss die Ergebnisse einer aktiven Datensatz Abfrage etwas anders bestellen.Wie bestelle ich die Ergebnisse von Schienen Geocoder Edelstein durch etwas anderes als Abstand

Zum Beispiel die Schienen Konsole

$> Person.near('London',10) 

erzeugt eine lange SQL-Abfrage (nicht relevant), gefolgt von

ORDER BY distance ASC 

Dieses eine schöne geordnete Liste von Personen aus am nächsten am weitesten gibt (bis zu 10 Meilen weit weg). Nun, wenn ich dies tun

$> Person.near('London',10).order('price_per_hour') 

Die Abfrage wird angefügt durch

ORDER BY distance ASC, price_per_hour 

ich immer noch die Leute alle in der Nähe von London wollen, aber ich nicht es nach Entfernung der Bestellung wollen. Es scheint nicht zu sein, dies herauszunehmen.

Ich kann nicht außerhalb der aktiven Datensatzabfrage sortieren, da ich Paginierung verwende, so dass die Bestellung in der Hauptabfrage erfolgen muss, die dann paginiert wird.

Antwort

16

sollten Sie reorder versuchen statt order:

Person.near('London',10).reorder('price_per_hour') 

Die reorder entfernt und ersetzen Sie die order Erklärung des near Bereich erstellt.

+0

Great stuff danke zu entfernen! – 32423hjh32423

+0

cool - wusste nicht darüber – user1051849

0

Ich weiß es zu spät. Jetzt geocoder gem bietet Standardreihenfolge der Entfernung

Person.near('London',10,order: false).order('price_per_hour') 
Verwandte Themen