Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 2.3和Rails 3.2之间的差异';周';方法_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails Rails 2.3和Rails 3.2之间的差异';周';方法

Ruby on rails Rails 2.3和Rails 3.2之间的差异';周';方法,ruby-on-rails,ruby,Ruby On Rails,Ruby,我注意到Rails 2和Rails 3在处理ActiveSupport日期时有一些不同的行为 当我在Rails2.3应用程序中运行以下代码时,它会按照我的预期运行,并一次输出一周的日期 >> first = Date.today => Fri, 23 Mar 2012 >> last = Date.today + 2.months => Wed, 23 May 2012 >> first.step(last, 1.week) { |date| pu

我注意到Rails 2和Rails 3在处理ActiveSupport日期时有一些不同的行为

当我在Rails2.3应用程序中运行以下代码时,它会按照我的预期运行,并一次输出一周的日期

>> first = Date.today
=> Fri, 23 Mar 2012
>> last = Date.today + 2.months
=> Wed, 23 May 2012
>> first.step(last, 1.week) { |date| puts date }
2012-03-23
2012-03-30
2012-04-06
2012-04-13
2012-04-20
2012-04-27
2012-05-04
2012-05-11
2012-05-18
当我在Rails3应用程序中尝试相同的代码时,我得到以下结果

>> first = Date.today
=> Fri, 23 Mar 2012
>> last = Date.today + 2.months
=> Wed, 23 May 2012
>> first.step(last, 1.week) { |date| puts date }
Mar 23, 2012
TypeError: expected numeric
问题似乎在于Rails 3现在如何处理.weeks方法,Rails 2输出以下内容

>> 1.week
=> 7 days
其中Rails 3输出

>> 1.week
=> 604800

谁能解释一下这里发生了什么,以及我如何在Rails 3中一周一周地灵活地迭代一个日期范围。

不知道为什么它不起作用,但这似乎是:

(Date.today..(Date.today + 30)).step(7)

在Rails 3.2中,这对我来说很好。我正在运行Rails 3.2.1,您是否使用相同的版本进行了测试?我在Rails控制台中使用了3.2.1。如果我强迫它是一个类似于
1.week.to_I
的数字,那么我可以从
1.week
中得到604800。加上7对我来说也很有用,但它的含义和阅读能力不如1。Weeky你是对的,这不太清楚。将其分解为一个命名良好的方法?