我在我的应用中使用gem geokit rails。我有一个包含各种地址的表。我正在尝试使用geokit功能by_distance,它找到按原点距离排序的记录。
所以我现在正在这样做。
@close = Mytable.by_distance(:origin => "12 wall street, NY")
所以这里发生的是MyTable中的所有id都按顺序存储在@close中,这意味着最接近的是数组的第一个元素。
我实际上只需要Mytable中最近的两个地址。所以我想知道该怎么做?因为我当前的代码按顺序为我提供了表中所有最接近的地址的列表。我不想表现糟糕,因为我只需要最近的2站。
请建议如何实现这一目标。
答案 0 :(得分:1)
你应该试试这个:
@close = Mytable.by_distance(:origin => "12 wall street, NY").limit(2)
请注意,by_distance
查询已经过优化,并且在查询中添加limit
不会在性能方面为您做任何激进的事情,但它应该也不会减慢你的申请速度。
与往常一样,在您的控制台中测试它以查看生成的SQL语句的外观,并且没有什么奇怪的事情发生。您可能还希望将两者相互对比以确定。