我的 rake 任务挂在无限循环中时遇到问题。到目前为止,我已经能够将问题隔离为一段将日期范围转换为数组的代码。即使我直接调用它:
(1.month.ago.beginning_of_month..1.month.ago.end_of_month).to_a.each {|d| p d}
该任务永远挂起迭代相同的元素:
"2012-06-01 00:40:41 UTC"
"2012-06-01 00:40:41 UTC"
"2012-06-01 00:40:41 UTC"
"2012-06-01 00:40:41 UTC"
"2012-05-31 20:40:41 UTC"
"2012-05-31 20:40:41 UTC"
"2012-06-01 00:40:42 UTC"
"2012-06-01 00:40:42 UTC"
"2012-06-01 00:40:42 UTC"
"2012-06-01 00:40:42 UTC"
"2012-05-31 20:40:42 UTC"
"2012-05-31 20:40:42 UTC"
...
如果相反我使用这个
(Date.new(2012,6,1)..Date.new(2012,6,30)).to_a.each {|d| p d}
一切正常,因此必须专门针对日期/时间使用 ActiveSupport 扩展。有没有其他人看过这个?
这发生在带有 Rails 3.1 和 Ruby 1.9.3 的 Windows 机器上的开发环境中,如果这很重要的话。