0

我正在尝试使用 rails 通过 highcharts 生成柱形图。

我已将 highcharts.js 文件放在 javascript 文件夹中,并创建了相应的 trial.js 文件:

$(function () {
    new Highcharts.Chart({
      chart: { type: 'column', 
                             renderTo: 'trials_chart' },
            title: { text: '' },
            xAxis: { type: 'datetime' },
                yAxis: {
                  title: { text: 'Yield (bales/ha)'}
                },
                series: [{
                name: "",
                  data: [<% @result.each do |d| %>
                                <%= "%.2f" % (d.lint/227) %>
                              <% end %>
                        ]
                                }]
              });
            });

数据值在哪里,我试图传递一个不起作用的循环。当我输入变量时,例如。[1,2,3,4,5] 它可以工作,但由于某种原因它无法生成和 erb 请求。在我看来,循环还可以显示包含数据的表格并且工作正常:

试验视图

<table class="table">
<% @result.each do |r| %>
<tr>
<td><%= r.variety.variety_name %></td>
<td><%= "%.2f" % (r.lint/227) %></td>
</tr>
<% end %>
</table>

我的控制器(试用​​版)

def trial
    @result = Result.where('trial_id' => params[:trial_id]).order('lint DESC')
end
4

2 回答 2

0

在控制器中,试试这个:

def trial
    @result = Result.where('trial_id' => params[:trial_id]).order('lint DESC')
    @data = []
    @result.each do |d|
       @data << ("%.2f" % (d.lint/227)).to_f
    end
    @data = @data.join(", ")
end

然后在 HighChart 脚本中:

series: [{
          name: "",
          data: [<%= @data %>]
        }]

谢谢。

于 2013-10-24T04:33:56.210 回答
0

为了让生活更轻松并使您的代码更干净,我建议使用如下库:

https://github.com/gazay/gon

您可以了解更多关于它的信息,并且通常只是将 javascript 传递给 rails http://railscasts.com/episodes/324-passing-data-to-javascript

于 2013-10-24T04:41:05.260 回答