如何通过远距离以外的其他方式订购rails geocoder gem的结果

问题描述 投票:8回答:2

我有这个优秀的宝石https://github.com/alexreisner/geocoder在我的应用程序中正常工作,但我需要略微不同地订购活动记录查询的结果。

例如,使用rails控制台

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

生成一个长SQL查询(不相关)后跟

ORDER BY distance ASC

这给出了一个很好的有序人员列表,从最近到最远(最远10英里)。现在,如果我这样做

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

查询附加

ORDER BY distance ASC, price_per_hour

我仍然想要伦敦附近的所有人,但我不希望它按距离排序。似乎无论如何都没有把它拿出来。

我无法在活动记录查询之外进行排序,因为我正在使用分页,因此需要在主查询中进行排序,然后对其进行分页。

ruby-on-rails activerecord rails-geocoder
2个回答
17
投票

你应该尝试reorder而不是order

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

reorder删除并替换由范围order创建的near语句。


0
投票

我知道为时已晚。现在geocoder gem提供了删除默认的距离顺序

Person.near('London',10,order: false).order('price_per_hour')
© www.soinside.com 2019 - 2024. All rights reserved.