问题在Highchart脚本中有空白图形

时间:2013-11-14 17:05:58

标签: ruby-on-rails ruby highcharts ruby-on-rails-2

我按照http://www.highcharts.com/demo/column-basic/skies中的步骤操作,问题是我的控制器到我的Highchart图形的值显示为空白(未显示我的值)

这是我在控制器中使用的表http://sqlfiddle.com/#!2/b7347/5

|policies|
  ID     POLICY_NUM    DATE_INI  CATEGORY_ID
   1       1234      2013-01-10     1
   2       5678      2013-01-10     2
   3       3444      2013-02-10     1
   4       4577      2013-02-10     2

|categories|
  ID   NAME
  1    Life
  2    Vehicles

这是我的控制器

def report

  @jan_life =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 1 AND date_ini BETWEEN '2013-01-01' AND '2013-01-31'")

  @jan_vehi =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 2 AND date_ini BETWEEN '2013-01-01' AND '2013-01-31'")

  @feb_life =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 1 AND date_ini BETWEEN '2013-02-01' AND '2013-02-28'")

  @feb_vehi =Policy.find_by_sql("select count(*) as total from policies Inner join categories ON categories.id =category_id WHere category_id = 2 AND date_ini BETWEEN '2013-02-01' AND '2013-02-28'")

end

这是我的观点

##### To Disable prototype #####
<script type="text/javascript">Array.prototype.reduce = undefined;</script>

##### To show High Chart Code ####
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

##### Values from my controller , actually is working ####
    <%= @jan_life[0].try(:total) %>     #it shows 1 value according with the info
    <%= @jan_vehi[0].try(:total) %>     #it shows 1 value according with the info
    <%= @feb_life[0].try(:total) %>     #it shows 1 value according with the info
    <%= @feb_vehi[0].try(:total) %>     #it shows 1 value according with the info

#### This code is HighChart image ####
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="http://code.highcharts.com/modules/exporting.js"></script>

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

<script type="text/javascript">
 $(function () {
    $('#container').highcharts({
        chart: {
            type: 'column'
        },
        title: {
            text: 'Monthly Average Rainfall'
        },
        subtitle: {
            text: 'Source: WorldClimate.com'
        },
        xAxis: {
            categories: [
                'Jan',
                'Feb'    
            ]
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Rainfall (mm)'
            }
        },
        tooltip: {
            headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
            pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
                '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
            footerFormat: '</table>',
            shared: true,
            useHTML: true
        },
        plotOptions: {
            column: {
                pointPadding: 0.0,
                borderWidth: 0
            }
        },
        series: [{
            name: 'Life',
            data: @jan_life[0].try(:total) %>,

        } , {
            name: 'Vehicles',
            data: @feb_life[0].try(:total) %>

        }]
    });
});
  </script>    

我做错了什么?显示空白似乎没有通过参数

以下是我应该http://jsfiddle.net/ajEF2/的高级代码视图。

但我不想写这个值,我想用我的控制器中的值来显示我的报告图像

请有人帮我这个吗?

我真的很感激帮助

1 个答案:

答案 0 :(得分:1)

夫妻俩:

1。)您是否错过了数据分配中的<%=

    series: [{
        name: 'Life',
        data: **<%=** @jan_life[0].try(:total) %>,

    } , {
        name: 'Vehicles',
        data: **<%=** @feb_life[0].try(:total) %>

    }]

2。)我已经做了一段时间,但是<%= @feb_life[0].try(:total) %>不会产生一个值?你最终会得到:

    series: [{
        name: 'Life',
        data: 1

    } , {
        name: 'Vehicles',
        data: 1

    }]

data属性必须是数组。尝试:

    series: [{
        name: 'Life',
        data: [<%=@jan_life[0].try(:total) %>] //note the brackets.

    } , {
        name: 'Vehicles',
        data: [<%=@feb_life[0].try(:total) %>]

    }]