2013-11-30 7 views
1

Я использую Lazy Highcharts для создания графика из моей базы данных. У меня есть петля, расположенная в моем контроллере, и она правильно выравнивает столбцы, но в категориях он перечисляет только последний введенный сайт, не зная, почему это так.Rails Highchart not looping

Контроллер

def index 
    @nutritiontrials = Nutritiontrial.all 

    @plantstand = LazyHighCharts::HighChart.new('graph') do |f| 
    @nutritiontrials.each do |trial| 
     f.xAxis(:categories => [trial.site]) 
     f.series(:type => 'column', :name => 'Plant Stand Treated', :data => [trial.nil_plant_stand_est], :color => '#00463f') 
    end 
    end 
end 
+1

Похоже, каждая итерация сбрасывает XAxis и серию, а не присоединяет к нему. – davidfurber

+0

Спасибо, Дэвид, теперь у меня это работает. Я создал цикл вне кода LazyHighCharts и назвал массив. Обновленный код ниже для всех, кто может иметь эту проблему. – Grinskull

ответ

1
@nutritiontrials = Nutritiontrial.all 
    sites = [] 
    plant_stand = [] 

    @nutritiontrials.each do |trial| 
     sites << trial.site 
     plant_stand << trial.nil_plant_stand_est 
    end 

    @plantstand = LazyHighCharts::HighChart.new('graph') do |f| 
     f.xAxis(:categories => sites) 
     f.series(:type => 'column', :name => 'Plant Stand Treated', :data => plant_stand, :color => '#00463f') 
    end