我有一个简单的任务,我想采取一个开始日期和结束日期,并在天/日期循环。这段代码正在我的db:seed rake任务中使用。目前,我的代码已经经历了以下尝试。
(someModel.start_date.to_datetime..someModel.end_date.to_datetime).each {
|x| puts x
}
......
(someModel.start_date...someModel.end_date).each { |x| puts x }
在每种情况下,我都会得到这样的错误。
can't iterate from ActiveSupport::TimeWithZone
or
can't iterate from DateTime
如果任何人有任何关于如何迭代一系列DateTimes的线索,我会非常感激。
5条答案
按热度按时间col17t5w1#
4uqofj5v2#
你必须确保你正在处理一个
Date
对象(通过调用to_date
),然后一切都按预期工作:或者使用范围:
scyqe7ek3#
你不能从
DateTime
开始迭代。但是,当interval的start和end是Date
的示例时,可以进行迭代。如果可能的话,转换它们。然后看看这些
Date
方法:用于代替
each
cs7cruho4#
如果您想在范围上进行迭代,您可以考虑每天使用
someModel.start_date + 1.day.to_i
之类的代码执行循环和步骤omvjsjqw5#
下面是我们在两个TimeWithZones上按分钟迭代的方法: