Eine Schleife in einer Schleife um ein Array zu füllen?
-
21-08-2019 - |
Frage
Ich baue ein Zeitregistrierungsprogramm. Benutzer können an einem Projekt arbeiten, und ich möchte in einem Diagramm angezeigt werden, wie viele Stunden jeder Benutzer an einem Projekt gearbeitet, sagen wir mal, jeden Monat. Die Grafik-Plugin funktioniert wie folgt:
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})
Dies fügt eine neue Linie in der Grafik.
Meine Frage ist, wie kann ich eine Schleife durch alle meine Benutzer und für jeden eine neue Serie mit Daten aus der Datenbank füllen?
Lösung
Im Nachgang zu Pesto wäre schöner sein inject zu verwenden.
@series = User.all.inject([]) do |mem, user|
mem << OpenFlashChartLazy::Serie.new(user.foo, user.bar, user.foobarbob)
end
Die gleiche Code, nur noch tun ein @series = []
Andere Tipps
Ich habe keine Ahnung, wie Sie alle Daten für Serie.new erzeugen, aber Sie können diese ersten Schritte mit:
@series = []
users = User.find(:all)
users.each do |user|
@series << OpenFlashChartLazy::Serie.new(blah, blah, blah)
end
Dies wird alle addierten Serie Objekte zu einem Array hinzuzufügen.