2009-06-30 4 views
1

Я создаю программу регистрации времени. Пользователи могут работать над проектом, и я хочу отображать на диаграмме, сколько часов каждый пользователь работал над проектом, скажем, каждый месяц. Плагин диаграммы работает следующим образом:Цикл в цикле для заполнения массива?

first_serie = OpenFlashChartLazy::Serie.new(
[["2008-1",100],["2008-2",120],["2008-3",130]], 
{:title=>"name_of_user1",:start_date=>Time.mktime(2008,1,1),:items=>8}) 

Это добавляет новую строку на графике.

Мой вопрос: как я могу прокрутить все мои пользователи и для каждого заполнить новую серию данными из базы данных?

ответ

1

В качестве продолжения Песто было бы лучше использовать инъекцию.

@series = User.all.inject([]) do |mem, user| 
    mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob) 
end 

же код, как раз не имеют @series = []

4

Я понятия не имею, как генерировать все данные для Serie.new, но вы можете начать использовать это:

@series = [] 
users = User.find(:all) 
users.each do |user| 
    @series << OpenFlashChartLazy::Serie.new(blah, blah, blah) 
end 

Это добавит все добавленное Serie объектов в массив.

+0

Большое спасибо за понимание этого делает вещи ясно ... @ series.each сделать | Серия | bar_graph.add_serie (серия) end – arcooverbeek

Смежные вопросы