我可以根据地理编码器 gem 中的纬度和经度搜索附近的记录,但如何不显示我现在正在查看的记录?
如果我正在使用 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 %>
如何不显示当前记录,而是显示附近的所有其他记录?
最佳答案
使用地理编码器,您可以简单地执行以下操作:
# 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
。
地理编码器文档页面上对此方法进行了更详细的解释:https://github.com/alexreisner/geocoder
关于ruby-on-rails - Ruby on Rails : looping through records, 但不显示当前 ID 的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31689564/