2012-05-27 2 views
1

Geocoder gem으로 advanced geocoding 섹션을 사용하면 작동하지 않을 수 있습니다. 나는 기본적으로 Google Maps Documentation에있는 모든 주소 구성 요소 유형을 가져다가 지오 코더 :: 결과 블록의 안쪽에 넣어 :지오 코더 보석 : 특정 Google지도 결과를 지오 코딩 할 수 없습니다.

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과 같이 다음 객체로 넘어갑니다.

무엇이 문제입니까? 당신이 geo.address_components_of_type(:route)

를 호출해야 경로 예를 들어 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 

그래서 API 문서에서

답변

4