【问题标题】:Rails searchkick gem, show the distance between two pointsRails searchkick gem,显示两点之间的距离
【发布时间】:2018-11-06 14:54:22
【问题描述】:

我在我的应用程序上使用searchkick gem 以便按距离获得结果:

@items = Item.search params[:search], page: params[:page], per_page: 10, fields: [:title], match: :phrase, location: {near: {lat: origin[0], lon: origin[1]}, within: within}}, order: {_geo_distance: {location: "#{destination[0]},#{destination[1]}", order: "asc", unit: unit} } 

如您所见,searchkick 将计算起点和终点两点之间的距离,并根据壁橱一返回结果。

现在,如果我遍历@item.each do |item|,有没有办法显示这两点之间的计算距离数?有没有可以访问的searchkick param

【问题讨论】:

    标签: ruby-on-rails searchkick


    【解决方案1】:

    您应该可以在这里利用#each_with_hit

    @items.each_with_hit do |item, hit|
      p hit
    end
    

    (Source)

    【讨论】:

    • 感谢@Scott Matthewman 的回复,不幸的是我得到了错误:undefined method each_with_hit for <Searchkick::Results:0x007fef0f884dd8>Did you mean? each_with_index...如果我更改为<% @items.each_with_index do |item, hit|%><%= hit %> 得到 0@ 知道为什么吗?
    • 对不起,我的错!这是一个过时的 API 方法。新语法显然是@items.with_hit.each。试试看,如果可行,我会更新答案以保持最新状态。
    • 这次它没有给出错误但它返回这个{"_index"=>"items_development_20181104141312240", "_type"=>"item", "_id"=>"1", "_score"=>nil, "sort"=>[0.6180733141351362]}这个<%= hit %>
    • 即使我这样做<%= hit.sort %>
    • 任何想法为什么这显示{"_index"=>"items_development_20181104141312240", "_type"=>"item", "_id"=>"1", "_score"=>nil, "sort"=>[0.6180733141351362]} 这个<%= hit %> ??这个我还是想不通!
    猜你喜欢
    • 2012-12-31
    • 2019-01-23
    • 2012-07-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-16
    • 2010-10-30
    • 1970-01-01
    • 2017-07-06
    相关资源
    最近更新 更多