Geocoder gem - 显示附近的其他模型

时间:2012-08-22 08:41:11

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

问题的权利,我有两个模型,房屋和商店,当我进入我的视图展示,我不仅要显示附近的所有房屋,还要显示商店,我不知道该放在我的控制器中但在我看来,它对于房屋来说是类似的东西,对于商店来说,如果我只使用类似的呼叫商店,它会抛出一个错误作为近处的未定义函数..

#app/views/houses/show.html.erb

<h3>Houses</h3>
<ul>
<% for house in @house.nearbys(10) %>
  <li><%= link_to house.address, house %> (<%= house.distance.round(2) %> km)</li>
<% end %>
</ul>

仅适用于一种型号,但适用于其他型号......我需要您的帮助

提前谢谢

2 个答案:

答案 0 :(得分:1)

.near方法是一个类方法,所以你可以这样做:

Shop.near(@ house.address)

这将返回房子附近的商店(假设您通过名为“地址”的属性/方法为您的房屋模型进行地理编码)。您也可以使用@house中的坐标,并输入您想要作为第二个参数的坐标的距离。

Shop.near([@ house.latitude,@ house.longitude],20)

将返回距离房屋地理坐标20英里范围内的所有商店。

答案 1 :(得分:0)