Ruby on rails Geokit rails插件-can';t调用返回的GeoLoc对象上的_json,给出循环引用错误

Ruby on rails Geokit rails插件-can';t调用返回的GeoLoc对象上的_json,给出循环引用错误,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在rails 2.3应用程序上使用了早期版本的geokit插件,刚刚更新到这个最新版本——现在使用的是gem 在以前的版本中,可以将.geocode方法返回的对象转换为json。只需对其调用to_json方法 然而,这在新版本中被打破 我注意到在新的GeoLoc中有一个属性@all,如果您对它调用_json,它会产生一个循环引用错误 以下是返回的对象的示例: <Geokit::GeoLoc:0x3837be4 @full_address="Phoenix, AZ, USA", @city

我在rails 2.3应用程序上使用了早期版本的geokit插件,刚刚更新到这个最新版本——现在使用的是gem

在以前的版本中,可以将.geocode方法返回的对象转换为json。只需对其调用to_json方法

然而,这在新版本中被打破

我注意到在新的GeoLoc中有一个属性@all,如果您对它调用_json,它会产生一个循环引用错误

以下是返回的对象的示例:

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

如果您在上面调用_json,则会出现以下错误:

ActiveSupport::JSON::CircularReferenceError(对象引用自身)

我使用“json”通过jquery在地图上绘制标记。当然,我可以从GeoLoc结果中生成自己的字符串并将其转换为json-但它更多的是代码

有人知道为什么在新版本中添加了该属性,以及是否有其他方法可以直接将geoLoc结果转换为json吗?

嘿,现在最简单的方法是调用
my\u geoLoc.to\u hash.to\u json

之所以使用循环引用,是因为地理编码调用可以返回多个结果,这些结果保存在@all属性中