Fel*_*ger 3 ruby ruby-on-rails
我想在视图中打印过去14天中每一天的统计数据.
为此,我打算创建一系列日期,从今天开始到第14天结束(回到过去),迭代 .each在视图中.
most_recent = Date.current
least_recent = Date.current.ago(14.days)
Run Code Online (Sandbox Code Playgroud)
这不起作用:
most_recent..least_recent.each
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用:
(most_recent).downto(least_recent).each
Run Code Online (Sandbox Code Playgroud)
任何想法如何实现这一目标?
我用的是Numeric#ago:
14.downto(0) do |i|
date = i.days.ago
end
Run Code Online (Sandbox Code Playgroud)
你尝试不起作用因为most_recent大于least_recent(我在这里使用整数,但日期相同):
(0..-14).to_a #=> []
-14.downto(0).to_a #=> []
Run Code Online (Sandbox Code Playgroud)
这些方法只能"从低到高":
(-14..0).to_a #=> [-14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0]
0.downto(-14).to_a #=> [-14, -13, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0]
Run Code Online (Sandbox Code Playgroud)
这是怎么用的Date#downto?
require 'date'
dt = Date.today
dt.downto(dt-5){|d| puts d }
Run Code Online (Sandbox Code Playgroud)
输出:
2013-09-27
2013-09-26
2013-09-25
2013-09-24
2013-09-23
2013-09-22
Run Code Online (Sandbox Code Playgroud)