我注意到Rails 2和Rails 3在ActiveSupport日期處理方面的一些不同行爲。Rails 2.3和Rails 3.2'周'方法的區別
當我在Rails 2.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
當我嘗試一個Rails 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 }
Mar 23, 2012
TypeError: expected numeric
的問題似乎是如何Rails 3的現在處理.weeks方法,軌道2輸出以下
>> 1.week
=> 7 days
Rails所3個輸出
>> 1.week
=> 604800
誰能解釋這裏發生了什麼,以及如何在Rails 3中一次一週地整齊迭代日期範圍。
,在Rails的3.2,我工作得很好。 – 2012-03-23 06:14:41
我正在運行Rails 3.2.1,你用同樣的版本測試過嗎? – 2012-03-23 06:35:02
我在Rails控制檯中使用3.2.1進行了檢查。如果我強迫它成爲'1.week.to_i'之類的數字,我可以從'1.week'中得到604800。 – 2012-03-23 17:01:26