Ruby on rails Rails地理编码器gem显示结果
我正在使用Ruby on rails Rails地理编码器gem显示结果,ruby-on-rails,ruby,ruby-on-rails-4,rails-geocoder,Ruby On Rails,Ruby,Ruby On Rails 4,Rails Geocoder,我正在使用geocoder gem从地址设置经度和纬度: 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
geocoder gem
从地址设置经度
和纬度
:
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-Ub(obj){obj.full\u address.present?}
def完整地址
[街道、城市、州、邮政编码、国家].加入(“,”)
结束
结束
结束搜索:
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
class SearchController:距离)
其他的
@瑞银=[]
结束
结束
如果没有更多关于项目的纬度/经度值的信息,很难说清楚,但是从您的查询中我想到的是:
式中(items.latitude介于-0.07236589155542399和0.07236589155542399之间,items.latitude介于-0.07236589155542399和0.07236589155542399之间)
这些纬度/经度的上限和下限代表了非洲西海岸的一个小区域,因此我并不奇怪您的项目都不在那里
location\u info=request.location
返回的值是什么?还有,你是从哪里看到这个部分的
请注意,在测试和开发环境中,这些方法通常会返回nil,因为“localhost”和“0.0.0.0”等不是Internet IP地址
谢谢你的回复@Brian。要分别回答您的问题,有几个项目的值是:纬度:39.6471643,经度:-75.6857385
。假设location\u info=request.location
根据ip返回用户的当前位置。同样只是提醒一下,我使用了railsserver-b0.0.0
来启动服务器。我的问题是,为什么它根本不重新调整任何结果??我如何测试它是否有效?我想如果你用location\u info=[39.6471643,-75.6857385]
替换location\u info=request.location
,你会看到一些结果。你看不到任何结果,因为你要的东西在纬度0,经度0的5英里以内,而纬度0在非洲海岸的海洋中。