2

質問ですが、家とお店の2つのモデルがあります。ビューショーに入ると、近くの家だけでなくお店も表示したいのですが、コントローラーに何を入れるかわかりません。家の場合はこのようになりますが、お店の場合は、お店だけを呼び出すのと同じようにすると、近くの未定義の関数としてエラーがスローされます。

#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>

1つのモデルだけでうまく機能しますが、他のモデルでは...あなたの助けが必要です

前もって感謝します

4

2 に答える 2

1

.nearメソッドはクラスメソッドであるため、次のように実行できます。

Shop.near(@ house.address)

これにより、家の近くのショップが返されます(家のモデルの「address」という名前の属性/メソッドでジオコーディングしていると仮定します)。@houseの座標を使用して、必要な座標からどれだけ離れているかを2番目の引数として入力することもできます。

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

家の地理座標から20マイル以内にあるすべてのショップを返却します。

于 2014-03-07T02:45:20.053 に答える
0

http://media.railscasts.com/assets/episodes/videos/273-geocoder.mp4

于 2012-08-22T09:21:31.047 に答える