Rails geocoder gem显示结果

时间:2017-09-14 09:36:17

标签: ruby-on-rails ruby ruby-on-rails-4 rails-geocoder

我正在使用geocoder gem来设置地址中的longitudelatitude

 class Ub < ApplicationRecord

  geocoded_by :full_address
  after_validation :geocode, if: ->(obj){ obj.full_address.present? }

  def full_address
    [street, city, state, zip_code, country].join(",")
  end
end

结束搜索:

class SearchController < ApplicationController

  def search
    if params[:search].present?
      location_info = request.location
      @ubs = Ub.near([location_info.latitude, location_info.longitude], 5, :order => :distance)
    else
      @ubs = []
    end
  end

1 个答案:

答案 0 :(得分:1)

如果没有关于items的纬度/经度值的更多信息,很难肯定地说,但是从您的查询中跳出来的是:

  

WHERE(items.latitude BETWEEN -0.07236589155542399 AND 0.07236589155542399 AND items.longitude BETWEEN -0.07236589155542399 AND 0.07236589155542399)

纬度/经度的上限和下限代表非洲西海岸的一小块区域,所以我并不感到惊讶,因为location_info = request.location没有位于那里。

Ocp-Apim-Subscription-Key返回了哪些值?另外,您是否从the documentation看到了此部分?

  

请注意,这些方法通常会在测试和开发环境中返回nil,因为“localhost”和“0.0.0.0”之类的东西不是Internet IP地址。