Mam pytanie rubinowe dla początkujących o wielowymiarowych tablicach.Jak zrobić dynamiczną tablicę wielowymiarową w ruby?
Chcę sortować wpisy według roku i miesiąca. Więc chcę stworzyć wielowymiarową tablicę, która zawiera rok -> miesiąc -> Wpisy miesiąca
więc tablica będzie jak:
2009 ->
08
-> Entry 1
-> Entry 2
09
-> Entry 3
2007 ->
10
-> Entry 5
Teraz mam:
@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
ale gdy próbuję wykonać iterację tablicy lat, otrzymuję: „niezdefiniowanej metody` każdy”za rok 2009: Fixnum”
Próbowano również:
@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
Dzięki . – jussi
Nie ma za co. Spójrz na odpowiedź Michaela_Sepcota, aby dowiedzieć się, jak to zrobić w bardziej "zaradny sposób". –
Dzięki! Nareszcie rozumiem to –