I have this excellent gem https://github.com/alexreisner/geocoder working fine in my app but I need to order the results of an active record query slightly differently.
For example using the rails console
$> Person.near('London',10)
produces a long SQL query (not relevant) followed by
ORDER BY distance ASC
This gives a nice ordered list of People from closest to furthest (upto 10 miles away). Now if I do this
$> Person.near('London',10).order('price_per_hour')
The query is appended by
ORDER BY distance ASC, price_per_hour
I still want all the people near London but I dont want it ordering by distance. There doesnt seem to be anyway of taking this out.
I can't sort outside of the active record query because I am using pagination so ordering needs to be done in the main query which is then paginated.
You should try reorder
instead of order
:
Person.near('London',10).reorder('price_per_hour')
The reorder
removes and replace the order
statement created by the scope near
.
I know its too late.
Now geocoder
gem provides to remove default order of distance
Person.near('London',10,order: false).order('price_per_hour')
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With