¿Cómo hacer array dinámico multidimensional en ruby?

Tengo una pregunta de rubí para principiantes sobre matrices multidimensionales.

Quiero ordenar las entradas por año y mes. Así que quiero crear una matriz multidimensional que contendría años -> meses -> entradas del mes

Entonces la matriz sería como:

2009 ->
       08
          -> Entry 1
          -> Entry 2
       09
          -> Entry 3
2007 ->
       10
          -> Entry 5

Ahora tengo:

@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

pero cuando intento recorrer la matriz de años, obtengo: "método indefinido` cada 'para 2009: Fixnum "

Intenté también:

@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

Respuestas a la pregunta(4)

Su respuesta a la pregunta