如何将Ruby数组传递给Javascript以生成折线图

我正在尝试创建一个网页,以在我的Ruby on Rails 2.3.14应用程序中显示折线图。 我找到了一个名为JS Charts的工具,它允许我使用Javascript创建漂亮的图形,但是我无法向它发送所需的数据。 以下是制作静态线图的方法:

 var myData = new Array([1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]); var myChart = new JSChart('chartcontainer', 'line'); myChart.setDataArray(myData); myChart.draw();  

我将该代码放入stats.html.erb中,然后显示出来。 但是,我需要它来显示我提供的线图数据。 在控制器中创建一个二维数组:

 >> @a => [[1, 395], [2, 244], [3, 223], [4, 210], [5, 238], [6, 223], [7, 275], [8, 31]] 

我应该能够在视图中使用该变量,并将var myData设置为它,例如:

 var myData = ""; 

我试过其他的事情:

 var myData = JSON.parse( "" ); 

但似乎没什么用。 有什么我可以做的吗?

编辑:

控制器传入视图(@a)的数组存在问题,该视图为空。 我能够使用:

 var myData = JSON.parse( "" ); 

显示正确数据传递到视图中的折线图。

看起来就像你让它工作但你可以稍微清理一下:

 <%= javascript_tag do %> window.myData = <%=raw @a.to_json %>; <% end %> 

或者在rails 3中你可以超级HTML5 savy并使用data助手将你的数据添加为一些html标签的att:

 <%= content_tag "div", id: "myDiv", data: {stuff: @a} do %>  <% end %> 

然后在javascript中(使用jQuery):

 var myData = $('#myDiv').data("stuff") 

而且对于超级敏锐的人来说,看一下这个看门票