1

Geocoder gemで、高度なジオコーディングセクションを使用しても、うまく動作しないようです。私は基本的に、Google マップ ドキュメントのすべての住所コンポーネント タイプを取得し、 Geocoder::Result ブロック内に配置しました。

geocoded_by :street_address  do |obj,results|
 if geo = results.first
  obj.route = geo.route
  obj.intersection = geo.intersection
  obj.political = geo.political
  obj.country = geo.country
  obj.administrative_area_level_1 = geo.administrative_area_level_1
  obj.administrative_area_level_2 = geo.administrative_area_level_2
  obj.administrative_area_level_3 = geo.administrative_area_level_3
  obj.colloquial_area = geo.colloquial_area
  obj.floor = geo.floor
  obj.room = geo.room
 end
end
after_validation :reverse_geocode

しかし、私はこのエラーが発生します:

NoMethodError in StoresController#create

undefined method `route' for #<Geocoder::Result::Google:0x6939150>

このオブジェクトを削除すると、 などの次のオブジェクトに移動しintersectionます。

ここでの問題は何ですか?

4

1 に答える 1

4

API ドキュメントhttp://rdoc.info/github/alexreisner/geocoder/master/Geocoder/Result/Googleから

 - (Object) address_components_of_type(type)

Get address components of a given type. Valid types are defined in Google's Geocoding API documentation and include (among others):

:street_number
:locality
:neighborhood
:route
:postal_code

したがって、ルートの例では、呼び出す必要がありますgeo.address_components_of_type(:route)

于 2012-06-03T01:51:12.703 に答える