将值从RubyonRails控制器传递到Javascript以呈现

将值从RubyonRails控制器传递到Javascript以呈现,javascript,ruby-on-rails,Javascript,Ruby On Rails,我有一个JS highchart,我正试图将一些值传递到其中,这些值是在我的页面\u controller中计算出来的。我尝试过全局变量和实例变量,但这两种变量在渲染中都不起作用。我猜这个值没有传入 在我的页面中\u controller我有: > @nil_ref = (@counts[nil]/total.to_f)*10 > @email_ref = (@counts["email"]/total.to_f)*10 > @cpc_ref = (@counts["cpc"]

我有一个JS highchart,我正试图将一些值传递到其中,这些值是在我的
页面\u controller
中计算出来的。我尝试过全局变量和实例变量,但这两种变量在渲染中都不起作用。我猜这个值没有传入

在我的
页面中\u controller
我有:

> @nil_ref = (@counts[nil]/total.to_f)*10
> @email_ref = (@counts["email"]/total.to_f)*10
> @cpc_ref = (@counts["cpc"]/total.to_f)*10
> @display_ref = (@counts["display"]/total.to_f)*10
然后在我的/public/highcharts.js文件中,我有:

var chart1; // globally available
   $(document).ready(function () {
       var chart = new Highcharts.Chart({
           chart: {
               renderTo: 'container',
               type: 'pie'
           },
           xAxis: {
               categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
           },
           yAxis: {   
           },
           legend: {
               layout: 'vertical',
               floating: true,
               backgroundColor: '#eeeeee',
               align: 'right',
               verticalAlign: 'top',
               y: 60,
               x: -60
           },
           tooltip: {
               formatter: function() {
                   return '<b>'+ this.series.name +'</b><br/>'+
                       this.x +': '+ this.y;
               }
           },
           plotOptions: {
           },
           series: [{
               data: [<%= @nil_ref %>, <%= @email_ref %>, <%= @cpc_ref %>, <%= @display_ref %>] //These need to be global vars        
           }]
       });
   });
var chart1;//全球可用
$(文档).ready(函数(){
var图表=新的Highcharts.图表({
图表:{
renderTo:'容器',
键入:“馅饼”
},
xAxis:{
类别:[一月、二月、三月、四月、五月、六月、七月、八月、九月、十月、十一月、十二月]
},
亚克斯:{
},
图例:{
布局:“垂直”,
浮动:是的,
背景颜色:“#eeeeee”,
对齐:“右”,
垂直排列:“顶部”,
y:60,
x:-60
},
工具提示:{
格式化程序:函数(){
返回“+this.series.name+”
+ this.x+':'+this.y; } }, 打印选项:{ }, 系列:[{ 数据:[,,]//这些必须是全局变量 }] }); });
当我检查Chrome中的元素时,我在JS中带有Ruby标记的行中得到了
Uncaught-SyntaxError:Unexpected-token


如何成功地将这些值传入?

如果RoR数据是字符串,您需要这样做:

data: ["<%= @nil_ref %>", "<%= @email_ref %>", ...
数据:[“”,“”。。。

这有关系吗?相同的语法?图形周围的资源现在正在加载,而不是实际的饼图本身。我不知道HeighCharts,但您需要首先检查它是否可以添加手动数据,然后需要检查RoR生成的内容,查看源代码并检查该行以查看数据数组的外观。(您甚至可以使用pastebin向我们显示源代码)最后,如果其中一个数组元素不是数字,并且它是一个字符串,则需要在其周围添加“”