Une boucle dans une boucle pour remplir un tableau?
-
21-08-2019 - |
Question
Je construis un programme d'enregistrement du temps. Les utilisateurs peuvent travailler sur un projet, et je veux afficher dans un graphique combien d'heures chaque utilisateur a travaillé sur un projet, disons, chaque mois. Le plugin graphique fonctionne comme ceci:
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})
Cela ajoute une nouvelle ligne dans le graphique.
Ma question est de savoir comment puis-je boucle à travers tous mes utilisateurs et pour chaque remplir une nouvelle série avec les données de la base de données?
La solution
En tant que suivi Pesto serait plus agréable à utiliser inject.
@series = User.all.inject([]) do |mem, user|
mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob)
end
Même code, tout ne marche pas avoir un @series = []
Autres conseils
Je ne sais pas comment vous générer toutes les données pour Serie.new, mais vous pouvez commencer à utiliser ceci:
@series = []
users = User.find(:all)
users.each do |user|
@series << OpenFlashChartLazy::Serie.new(blah, blah, blah)
end
Cela va ajouter tous les objets Serie ajoutés à un tableau.