(3.years.ago.to_date..Date.today).map { |date| [date.month, date.year] }.uniq!
[[11, 2008], [12, 2008], [1, 2009], [2, 2009], [3, 2009], [4, 2009], [5, 2009], [6, 2009], [7, 2009], [8, 2009], [9, 2009], [10, 2009], [11, 2009], [12, 2009], [1, 2010], [2, 2010], [3, 2010], [4, 2010], [5, 2010], [6, 2010], [7, 2010], [8, 2010], [9, 2010], [10, 2010], [11, 2010], [12, 2010], [1, 2011], [2, 2011], [3, 2011], [4, 2011], [5, 2011], [6, 2011], [7, 2011], [8, 2011], [9, 2011], [10, 2011], [11, 2011]]
如何变成一个哈希这种结构:
[
[month => 11, year => 2008],
[month => 12, year => 2008],
[month => 1, year => 2009],
etc
]
所以我可以用它喜欢:
foo.first.month # returns 11
foo.first.year # returns 2008
等
foo.first返回'{:一个月=> 11:年=> 2008}'但foo.first.months回报'NoMethodError:{:month => 11,:year => 2008}的未定义方法'month':Hash'。任何想法为什么? –
我已经更新了我的答案。 –
我明白了。为了避免这个问题。使用关联数组是否很常见?这是否合理?还是有更好的方法来做到这一点与哈希方法? –