Ruby on rails GoogleMaps与JSON-CircularReferenceError的集成

Ruby on rails GoogleMaps与JSON-CircularReferenceError的集成,ruby-on-rails,json,Ruby On Rails,Json,更新II 我明白了。使用谷歌地图api时,模型不得命名为“地图”。to_json在我创建了一个新的模型名之后工作 更新 @“地图”是我的模型的名称,它包含地址、经度、纬度等信息。当我替换时;为了,HTML呈现ActiveRecord::Relation:0x1044e8ba8> 在控制台中: >> b= Map.last => #<Map id: 6, first_name: "James", last_name: "", address: "2478 Goldenr

更新II

我明白了。使用谷歌地图api时,模型不得命名为“地图”。to_json在我创建了一个新的模型名之后工作

更新

@“地图”是我的模型的名称,它包含地址、经度、纬度等信息。当我替换
时;为了
,HTML呈现ActiveRecord::Relation:0x1044e8ba8>

在控制台中:

>> b= Map.last
=> #<Map id: 6, first_name: "James", last_name: "", address: "2478 Goldenrod Ln, Perrysburg, OH", address2: "", zip: "", city: "", phone: "", campaign_id: nil, email: "", employer: "", occupation: "", created_at: "2010-04-02 20:58:15", updated_at: "2010-04-02 20:58:15", latitude: 41.556996, longitude: -83.627157>
>> b.to_json
=> "{\"occupation\":\"\",\"city\":\"\",\"address\":\"2478 Goldenrod Ln, Perrysburg, OH\",\"zip\":\"\",\"latitude\":41.556996,\"created_at\":\"2010-04-02T20:58:15Z\",\"address2\":\"\",\"updated_at\":\"2010-04-02T20:58:15Z\",\"campaign_id\":null,\"id\":6,\"phone\":\"\",\"last_name\":\"\",\"employer\":\"\",\"longitude\":-83.627157,\"first_name\":\"James\",\"email\":\"\"}"
>b=Map.last
=> #
>>b.to_json
“地址:”,,“地址:”:“2478个金花奖Ln,佩里斯堡,OH\”,“拉链:”,,“拉链:“,,,,“纬度:,,,“纬度::,,,“纬度”:41.55556996,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,“经度”:-83.627157,“名字”:”詹姆斯\“,\“电子邮件\”:\“\”}”
Rails服务器:

>> b= Map.last
=> #<Map id: 6, first_name: "James", last_name: "", address: "2478 Goldenrod Ln, Perrysburg, OH", address2: "", zip: "", city: "", phone: "", campaign_id: nil, email: "", employer: "", occupation: "", created_at: "2010-04-02 20:58:15", updated_at: "2010-04-02 20:58:15", latitude: 41.556996, longitude: -83.627157>
>> b.to_json
=> "{\"occupation\":\"\",\"city\":\"\",\"address\":\"2478 Goldenrod Ln, Perrysburg, OH\",\"zip\":\"\",\"latitude\":41.556996,\"created_at\":\"2010-04-02T20:58:15Z\",\"address2\":\"\",\"updated_at\":\"2010-04-02T20:58:15Z\",\"campaign_id\":null,\"id\":6,\"phone\":\"\",\"last_name\":\"\",\"employer\":\"\",\"longitude\":-83.627157,\"first_name\":\"James\",\"email\":\"\"}"
我正在Rails 3.0.0.beta2上工作,遵循“菜谱32,在谷歌地图上标记位置”,我遇到了一个路障

以下代码在第3行返回“ActiveSupport::JSON::Encoding::CircularReferenceError”“对象引用自身”。此代码表示/layouts/maps.html.erb文件

<% if @maps -%>
<script type="text/javascript">
    var maps = <%= @maps.to_json %>;
</script>
<% end -%>

var映射=;
这是我第一次尝试呈现JSON,我不知道如何调试这个问题。你有这方面的经验吗?什么会导致这个问题


提前谢谢你

我也看到了这个错误&发现调试非常困难,因为在对象上调用as_json不会返回错误,而to_json会返回错误


尝试从模型中删除日期和时间属性,看看是否有帮助。我一直在用谷歌搜索这个问题&一些早期的解决方案(从2007年开始)建议修补JSON日期编码。

我发现了这个问题!当使用谷歌地图api时,我的模型不能命名为“地图”。to_json在我创建了一个新的模型名称之后就可以工作了。

我们需要知道
@maps
是什么来帮助您调试这个。嗨,Ryan,我提供了更多的信息来处理。这可能是一个3.0.0.beta2错误?我发现这个事实也令人费解。我对as_json也没有问题,我发现这是由需要json的绑定gem(contacts gem)造成的。摆脱它&它解决了许多与json相关的奇怪bug。