迭代highcharts rails的用户属性

时间:2012-06-19 14:37:34

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

我有以下代码,对于用户权重的索引视图效果很好,但是当我尝试将相同的数据放在Highcharts中时,[]它似乎不喜欢它。

我正在尝试为用户获取所有weigh_ins(单独的表,其中包含用户权重信息,包括列,权重,创建时间,id和user_id),迭代它们然后从每个权重中选择权重在图表中显示。这只显示索引视图中浮动格式的权重,但不显示在高级图表中。

有什么想法吗?

 <% @user.weigh_ins.each do |weight| %>
    <td><%= weight.weight%></td>
  <% end %>

欢呼声

下面是图表的代码,@users迭代靠近底部。

        <script type="text/javascript">
$(function () {
    var chart;
    $(document).ready(function() {
        chart = new Highcharts.Chart({
            chart: {

                renderTo: 'container',
                type: 'line',
                marginRight: 130,
                marginBottom: 40
            },
            title: {
                text: 'Weight/KG',
                x: -20 //center
            },

            xAxis: {
                categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
            },
            yAxis: {
                title: {
                    text: 'Weight KG'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#FF9900'
                }]
            },
            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y +'kg';
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            },
            series: [{
                name: 'weight',
                                data: <% @user.weigh_ins.each do |weight| %>
                                            [<%= weight.weight %>]
                                            <% end %>                   

            }]
        });
    });

});
        </script>
<script src="../../js/highcharts.js"></script>
<script src="../../js/modules/exporting.js"></script>
<div id="container" style="min-width: 700px; height: 250px; margin: 10 auto"></div>

这是源

 xAxis: {
                categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
                    'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
            },
            yAxis: {
                title: {
                    text: 'Weight KG'
                },
                plotLines: [{
                    value: 0,
                    width: 1,
                    color: '#FF9900'
                }]
            },
            tooltip: {
                formatter: function() {
                        return '<b>'+ this.series.name +'</b><br/>'+
                        this.x +': '+ this.y +'kg';
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -10,
                y: 100,
                borderWidth: 0
            },
            series: [{
                name: 'weight',
                                data: []                           
                        [46.0]]
                                    [68.0]]
                                    [67.0]]  
                                    [89.0]]
                                    [70.0]                                                                                                                                  
            }]
        });
    });

});
        </script>

所以我设法让它工作,并使用...正确更新它加入了一个数组中的weight.weight迭代,每个之间有一个','所以它正确呈现。

系列:[{        名称:'重量',     数据:[            &lt;%@ user.weigh_ins.each do | weight | %GT;            &lt;%=“#{weight.weight},”%&gt;            &lt;%end%&gt; ]

0 个答案:

没有答案