Ich habe eine Anfänger-Ruby-Frage über multidimensionale Arrays.Wie macht man dynamische mehrdimensionale Arrays in Ruby?
Ich möchte Einträge nach Jahr und Monat sortieren. Deshalb möchte ich ein mehrdimensionales Array erstellen, die Jahre enthalten würde -> Monate -> Einträge von Monat
So würde das Array wie:
2009 ->
08
-> Entry 1
-> Entry 2
09
-> Entry 3
2007 ->
10
-> Entry 5
Jetzt habe ich:
@years = []
@entries.each do |entry|
timeobj = Time.parse(entry.created_at.to_s)
year = timeobj.strftime("%Y").to_i
month = timeobj.strftime("%m").to_i
tmparr = []
tmparr << {month=>entry}
@years.push(year)
@years << tmparr
end
aber wenn ich versuche, durch die Jahre Array zu durchlaufen, die ich erhalten: „nicht definierte Methode` jeder‘für das Jahr 2009: Fixnum“
auch versucht:
@years = []
@entries.each do |entry|
timeobj = Time.parse(entry.created_at.to_s)
year = timeobj.strftime("%Y").to_i
month = timeobj.strftime("%m").to_i
@years[year][month] << entry
end
Vielen Dank für die mir erleuchtet . – jussi
Gern geschehen. Schau dir Michael_Sepcots Antwort an, wie du es auf eine rubinischere Art machen kannst. –
Danke! Endlich verstehe ich das –