Вопрос

Я создаю программу регистрации времени.Пользователи могут работать над проектом, и я хочу отобразить на диаграмме, сколько часов каждый пользователь работал над проектом, скажем, каждый месяц.Плагин 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 в массив.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top