Ruby和Javascript:将Ruby数组作为Javascript变量传递

Ruby和Javascript:将Ruby数组作为Javascript变量传递,javascript,ruby,Javascript,Ruby,我正在尝试动态绘制一张谷歌地图,并在上面放置一个标记。在我的控制器中,我组装了一个包含业务名称、纬度、经度和z索引的数组 我的Rails视图中有一个Ruby数组: @locations = [["Location One",36.0552,-114.928,1]] 当我尝试在某些Javascript中使用该数组时: var loc = <%= @locations %> 为了使映射显示变量,需要如下所示: var loc = [['Location One',36.0552,-1

我正在尝试动态绘制一张谷歌地图,并在上面放置一个标记。在我的控制器中,我组装了一个包含业务名称、纬度、经度和z索引的数组

我的Rails视图中有一个Ruby数组:

@locations = [["Location One",36.0552,-114.928,1]]
当我尝试在某些Javascript中使用该数组时:

var loc = <%= @locations %>
为了使映射显示变量,需要如下所示:

var loc = [['Location One',36.0552,-114.928,1]]
数组的第一个元素周围的引号保持不变。如果我将最后一行硬编码到Javascript中,映射将正确呈现。它似乎真的是引用;把事情搞砸的标签

地图上会有不止一个位置,所以我认为数组是将所需数据导入视图的最佳方式


我怎样才能做到这一点?谢谢。

编辑更正DNNX的评论

我认为您需要在呈现之前将其转换为json(JavaScript的子集):

require "json"
...
var loc = <%= @locations.to_json.html_safe %>
需要“json”
...
var loc=

您需要使用html\u-safe来防止转义,因为引号不起作用<代码>有。我不知道html\u安全。谢谢大家。提供一个简单的例子会很有用。
require "json"
...
var loc = <%= @locations.to_json.html_safe %>