2013-10-24 41 views
0

我想通過使用rails的highcharts生成一個列圖。Rails和Highcharts

我已經放在highcharts.js文件中的JavaScript文件夾,並創建了我相應的trials.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 

回答

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 %>] 
     }] 

謝謝。

+0

沒有運氣在這個方法上。如果我把<%= @data %>放在「」中,那麼它會加載沒有數據的圖形。 – Grinskull

+0

請在'view'上調試'@ data'。 – rony36

+0

在控制器內部執行渲染:text => @ data.inspect可正確顯示數據,例如「10.72,10.12,9.74」應該是列圖。這就像鐵軌有問題渲染.js,但我不確定。 – Grinskull