gpt4 book ai didi

ruby-on-rails - Geokit-rails 插件 - 无法在返回的 GeoLoc 对象上调用 to_json,给出循环引用错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:40:07 26 4
gpt4 key购买 nike

我在 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 在 map 上绘制标记。当然,我可以根据 GeoLoc 结果创建自己的字符串并将其转换为 json - 但代码更多...

谁知道为什么在新版本中添加了该属性以及是否有另一种方法可以将 geoLoc 结果直接转换为 json?

最佳答案

嘿,现在最简单的方法是调用 my_geoloc.to_hash.to_json

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

关于ruby-on-rails - Geokit-rails 插件 - 无法在返回的 GeoLoc 对象上调用 to_json,给出循环引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/867491/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com