我可以根据地理编码器宝石的纬度和经度搜索附近的记录,但是我怎么不显示我现在正在查看的记录?
如果我在localhost:3000/project/san-diego
(位于美国圣地亚哥)的项目展示中,我在附近搜索
# controller
@project = Project.friendly.find(params[:id])
@nearby = Project.near([@project.latitude, @project.longitude], 50, :order => 'distance')
# view
<% @nearby.each do |n| %>
<span><%= n.title_name %></span>
<% end %>
如何不显示当前记录,而是显示附近的所有其他记录?
答案 0 :(得分:3)
使用地理编码器,您只需执行此操作:
# controller
@project = Project.friendly.find(params[:id])
@nearby = @project.nearbys(50)
# view
<% @nearby.each do |n| %>
<span><%= n.title_name %></span>
<% end %>
注意nearbys
方法。这会在给定距离(50英里)内找到同一对象的其他。在这种情况下,它会找到其他Project
s。
此方法在Geocoder文档页面上详细说明:https://github.com/alexreisner/geocoder
答案 1 :(得分:1)
作为一般解决方案,您可以跳过它。
<% @nearby.each do |n| %>
<% next if n == @project %>
<span><%= n.title_name %></span>
<% end %>