【发布时间】:2009-05-15 08:02:31
【问题描述】:
我在 rails 2.3 应用程序上使用了早期版本的 geokit 插件,并且刚刚更新到这个最新版本 - 现在使用 gem 的那个。
在以前的版本中,可以将 .geocode 方法返回的对象转换为 json。只需调用它的 to_json 方法。
然而,这在新版本中中断了。
我注意到新 GeoLoc 中有一个属性 @all,如果您在其上调用 to_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">
如果你在上面调用 to_json 就会出现错误:
ActiveSupport::JSON::CircularReferenceError(对象引用自身)
我正在使用“json”通过 jquery 在地图上绘制标记。当然,我可以从 GeoLoc 结果中创建自己的字符串并将其转换为 json - 但它是更多代码...
有人知道为什么在新版本中添加了该属性,以及是否有另一种方法可以将geoLoc结果直接转换为json?
【问题讨论】:
标签: ruby-on-rails ruby