【问题标题】:Order by distance through association with Geocoder通过与 Geocoder 关联按距离排序
【发布时间】:2014-08-12 20:57:34
【问题描述】:

我在我的 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,我可以继续链接查询在。

如何让我的场地按位置距离排序?

【问题讨论】:

    标签: ruby-on-rails activerecord geocoding rails-geocoder


    【解决方案1】:

    好的,我认为这可以满足您的需求 - 无法直接尝试地理编码器,所以请告诉我:

    locs = Location.near([lat, lng], 1, units: :km)
    venues = Venue.joins(:location).merge(locs)
    

    【讨论】:

    • 这行得通,但这不是我真正需要做的。在我的问题中遗漏了一些东西,我更新了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-11
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多