我在Location
模型中的项目中使用了Geocoder gem,其中有一个Venue
我希望搜索指定纬度和经度附近的场地并按他们的顺序排序位置距离。现在我像这样搜索:
location_ids = Location.near([lat, lng], 1, units: :km).map(&:id)
venues = Venue.where("location_id IN (?)", location_ids)
我知道我可以做.map(&:venue)
这会直接给我场地但在此之后我在我的控制器中链接一个查询,这样做会产生Array
而不是ActiveRecord::Relation
我可以继续链接查询。
如何按位置距离订购我的场地?
答案 0 :(得分:0)
好的我认为这可以满足您的需求 - 无法直接尝试使用地理编码器,请告诉我们:
locs = Location.near([lat, lng], 1, units: :km)
venues = Venue.joins(:location).merge(locs)