我刚刚关注了地理编码器的RailsCast教程 http://railscasts.com/episodes/273-geocoder。我正在使用Rails 4。
在gem文档中,它指出Geocoder也可以通过IP地址进行地理编码。比如在位置模型里面
geocoded_by :address
after_validation :geocode, :if => :address_changed?
目前我的应用程序发现纬度和经度为浮点数,并在位置模型中使用地址字段,定义如下:
<p>
<strong>Address:</strong>
<%= @location.address %>
</p>
<p>
<h3>Nearby Locations</h3>
<ul>
<%= request.location %> #bring back something like #<Geocoder::Result::Freegeoip:0x007fb15ae25c80>
<%= request.location.latitude %> # brings back latitude etc
<% for location in @location.nearbys(10) %>
<li> <%= link_to location.address, location %> (<%= location.distance.round(2)%> miles)</li>
<% end %>
控制器是标准脚手架,没有任何改变,所以它做标准的位置CRUD。
并在位置/显示视图中(您会注意到我已经开始使用request.location,但需要根据当前位置(ip_address)附近的位置查看位置):
std::this_thread::sleep_for
现在我知道如果我处于开发模式,我无法看到lat和long的坐标,所以这些只适用于生产模式。但是,如果我想使用当前位置或IP而不是基于地址的nearbys使用附近位置进行搜索。我该怎么办?