8

我有这个出色的 gem 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

我仍然想要伦敦附近的所有人,但我不希望它按距离排序。反正好像也没有办法拿出来。

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

4

2 回答 2

17

你应该尝试reorder而不是order

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

reorder删除和替换范围创建的order语句near

于 2012-12-20T09:29:48.793 回答
1

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

Person.near('London',10,order: false).order('price_per_hour')
于 2018-03-06T11:39:46.260 回答