在Rails中存在奇怪的JSON Javascript问题

22 浏览
0 Comments

在Rails中存在奇怪的JSON Javascript问题

我正在尝试将我的控制器中的JSON传递到视图中。在我的控制器中,我这样做:

@nodes = Node.all
@json = @nodes.as_json(:only => [:ID, :Lat, :Lon]) 

在我的视图中,我尝试了以下几种方式:

1) var stuff = <%= @json %>
2) var stuff = <%= @json.to_json %>
3) var stuff = <%= @json.to_json.to_json %>

但是这些都给我一个错误。我通常会得到一个"Unexpected Syntax Error &" 或 "Unexpected Syntax Error {"的错误。

我还尝试使用jquery和在控制器中使用respond_to,但似乎也不起作用。

我的想法是,将json传递到视图中不应该是一个大问题,也不需要使用jQuery,而且当前,我的页面源代码看起来像这样:

var stuff = [{"node":{"ID":1301499692582,"Lat":42.3605063113369,"Lon":-71.0870862191138}},{"node":{"ID":1301499691515,"Lat":42.3605147089149,"Lon":-71.0870533282532}},{"node":{"ID":1301431075499,"Lat":42.3605456103,"Lon":-71.0875239075536}} etc

我不明白"符号(也许这就是语法错误的原因),但当我使用render :json => @nodes.to_json时,页面会渲染一个正常的有效的json:

[{"node":{"ID":1301499692582,"Lat":42.3605063113369,"Lon":-71.0870862191138}},{"node":{"ID":1301499691515,"Lat":42.3605147089149,"Lon":-71.0870533282532}},{"node":{"ID":1301431075499,"Lat":42.3605456103,"Lon":-71.0875239075536}}

注意:我还尝试过var stuff = '<%= @json.to_json %>,但当我执行var json = JSON.parse(stuff)时,它会给我一个非法标记错误。

有人可以帮我解决这个问题吗?非常感谢!

0