在嵌套资源循环中实现gecoder gem?

时间:2013-05-09 20:00:13

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2 rails-geocoder

我根据http://railscasts.com/episodes/273-geocoder

上的教程实现了地理编码器gem

这是房子展示视图模板的一部分

- @house.location.nearbys(20, {:order => :distance, :units => :km}).each do |house|
   %li
    = link_to house.name, house_path
    (#{city.distance.round(2)} KM)

这个展示了其他与KM有距离的房子,所以这很好。

我已经在同一个房子页面上显示了房子所在地区的所有城市,如下所示:

%ul.tags
 - @region.cities.each do |city|
   %li= link_to city.name, country_region_city_path(@country, @region, city)

问题:如何在@region.cities循环中实现地理编码器宝石,以便访问者可以在房屋页面上看到从房屋到城市有多少KM?

...谢谢REMCO

2 个答案:

答案 0 :(得分:1)

地理编码对象应该有distance_from方法。如果你按照Ryan Bates的教程,@house应该有这个方法。

检查文档以了解如何使用它: https://github.com/alexreisner/geocoder#location-aware-database-queries

你基本上只需要问@house它与城市的距离(在你的城市循环中)

答案 1 :(得分:0)

是的,我做到了......我没想到的那么多......

  - @region.cities.each do |city|
     %li
      = link_to city.name, country_region_city_path(@country, @region, city)
     %li 
      = @house.location.distance_from([city.latitude,city.longitude])