Цикл в цикле для заполнения массива?
-
21-08-2019 - |
Вопрос
Я создаю программу регистрации времени.Пользователи могут работать над проектом, и я хочу отобразить на диаграмме, сколько часов каждый пользователь работал над проектом, скажем, каждый месяц.Плагин chart работает следующим образом:
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})
Это добавит новую линию на график.
Мой вопрос в том, как я могу перебрать всех своих пользователей и для каждого заполнить новую серию данными из базы данных?
Решение
В качестве дополнения к песто было бы приятнее использовать инжекторное.
@series = User.all.inject([]) do |mem, user|
mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob)
end
Тот же код, просто в нем нет @series = []
Другие советы
Я понятия не имею, как вы генерируете все данные для Serie.new, но вы можете начать использовать это:
@series = []
users = User.find(:all)
users.each do |user|
@series << OpenFlashChartLazy::Serie.new(blah, blah, blah)
end
Это добавит все добавленные объекты Serie в массив.
Не связан с StackOverflow