2009-05-15 3 views
2

이전 버전의 geokit 플러그인을 rails 2.3 앱에서 사용하고 있었고이 최신 버전으로 업데이트했습니다. 보석.Geokit-rails 플러그인 - 반환 된 GeoLoc 객체에서 to_json을 호출 할 수 없습니다. 순환 참조 오류가 발생했습니다.

이전 버전에서는 .geocode 메서드에서 반환 한 개체를 json으로 변환 할 수있었습니다. 그냥 to_json 메서드를 호출하면됩니다.

그러나 이것은 새 버전에서 나옵니다.

to_json을 호출하면 순환 참조 오류가 발생하는 새로운 GeoLoc에 @all 속성이 있음을 발견했습니다.

<Geokit::GeoLoc:0x3837be4 @full_address="Phoenix, AZ, USA", @city="Phoenix", @provider="google", @country_code="US", @accuracy=4, @street_address=nil, @lng=-112.073821, @precision="city", @zip=nil, @success=true, @all=[#<Geokit::GeoLoc:0x3837be4...>], @lat=33.448263, @state="AZ"> 

그리고 여기 당신이 그것에 to_json 호출하면 오류입니다 : 여기

오브젝트의 예는 반환

ActiveSupport :: JSON :: CircularReferenceError (객체 참조 자체)

"json"을 사용하여 jquery를 통해지도에 마커를 플롯합니다. 물론 GeoLoc 결과에서 내 문자열을 만들어 json으로 변환 할 수는 있지만 더 많은 코드입니다 ...

그 속성이 새 버전에 추가 된 이유와 다른 방법이 있는지 알 수 있습니다. geoLoc 결과를 json으로 직접 변환 하시겠습니까? 안녕

답변

1

- 지금 가장 쉬운 방법은 지오 코딩의 호출이 @all 속성에 보관되는 여러 결과를 반환 할 수 있기 때문에 my_geoloc.to_hash.to_json

원형 심판 일이 호출하는 것입니다.

+0

감사합니다. Andre. 그것은 완전히 효과가있었습니다. –

관련 문제