Ruby on rails 要哈希的Ruby日期范围

Ruby on rails 要哈希的Ruby日期范围,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在尝试打开以下输入: 1.week.ago.to_date..Date.today 变成这样: { 0 => '5/6', 1 => '5/15', 2 => '5/24', 3 => '5/30', 4 => '6/4', 5 => '6/12', 6 => '6/21', 7 => '6/28' } 你知道我该怎么做吗?如果有约会,你可以这样做: p Hash[(0..7).map{|day| [day, (D

我正在尝试打开以下输入:

1.week.ago.to_date..Date.today
变成这样:

{ 0 => '5/6', 1 => '5/15', 2 => '5/24', 3 => '5/30', 4 => '6/4',
             5 => '6/12', 6 => '6/21', 7 => '6/28' }

你知道我该怎么做吗?

如果有约会,你可以这样做:

p Hash[(0..7).map{|day| [day, (Date.today+day*7).strftime('%m/%d')]}] #=> {0=>"12/05", 1=>"12/12", 2=>"12/19", 3=>"12/26", 4...

通常有很多方法可以在Ruby中编写任何非平凡的构造。这里还有一个:

range = 1.week.ago.to_date..Date.today
array = range.each_with_index.map {|date, i| [i.to_s, date.strftime('%m/%d')]}.flatten
Hash[*array]
稍微干净一点

h = {}
(1.week.ago.to_date..Date.today).each {|x| h[h.count] = x.strftime("%m/%d")}

h # => {0=>"11/28", 1=>"11/29", 2=>"11/30", 3=>"12/01", 4=>"12/02", 5=>"12/03", 6=>"12/04", 7=>"12/05"}

日期的价值(可能是什么)从何而来?是的,但出于我不能完全捍卫的原因,我们不应该为那些没有展示他们已经尝试过的东西的人提供代码。@PeterAlfvin,我认为这是因为我们想“帮助”人们完成他们的家庭作业,而不是为他们做。如果罗布能举例说明什么对他不起作用,这个问题会好得多。否则,我们只是在做他的家庭作业。@UriMikhli谢谢。这是一个有趣的情况。由于以尝试的方式提供“东西”是相当容易的,我不确定这对那些想在家庭作业上作弊的人有多大的障碍。为了更好地理解这一点。。。。