我正在使用geocoder gem
来设置地址中的longitude
和latitude
:
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
答案 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地址。