1

我在我的应用程序中使用 gem geokit rails。我有一个包含各种地址的表。我正在尝试使用 geokit 功能 by_distance 来查找按距原点的距离排序的记录。

所以我现在正在这样做。

@close = Mytable.by_distance(:origin => "12 wall street, NY")

所以这里发生的是 MyTable 中的所有 id 按顺序存储在 @close 中,这意味着最接近的一个是数组的第一个元素。

我实际上只需要 Mytable 中最接近的两个地址。所以我想知道该怎么做?因为我当前的代码按顺序为我提供了表中所有最近地址的列表。我不想表现不佳,因为我只需要最近的 2 个站点。

请建议如何实现这一目标。

4

1 回答 1

1

你应该试试这个:

@close = Mytable.by_distance(:origin => "12 wall street, NY").limit(2)

请注意,by_distance查询已经尽可能地优化,并且limit在查询中添加 a 不会对您的性能产​​生任何影响,但它也不应该减慢您的应用程序的速度。

与往常一样,在您的控制台中对其进行测试,以查看生成的 SQL 语句是什么样的,并且没有发生任何奇怪的事情。为了确定,您可能还希望将两者相互对比。

于 2015-05-02T05:34:32.473 回答