Tôi có câu hỏi ruby mới bắt đầu về mảng đa chiều.Làm thế nào để tạo mảng đa chiều động trong ruby?
Tôi muốn sắp xếp các mục theo năm và tháng. Vì vậy, tôi muốn tạo một mảng đa chiều mà sẽ chứa năm -> tháng -> mục của tháng
Vì vậy, các mảng sẽ như thế nào:
2009 ->
08
-> Entry 1
-> Entry 2
09
-> Entry 3
2007 ->
10
-> Entry 5
Bây giờ tôi có:
@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
nhưng khi tôi cố gắng lặp qua mảng năm, tôi nhận được: "phương pháp chưa xác định` mỗi 'cho năm 2009: Fixnum "
Đã thử:
@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
Cảm ơn soi sáng cho tôi . – jussi
Bạn được chào đón. Nhìn vào câu trả lời của Michael_Sepcot về cách làm theo cách _rubyish_ hơn. –
Cảm ơn! Cuối cùng tôi hiểu điều này –