/ / Разлика между релси 2.3 и релси 3.2 'седмичен' метод - ruby-on-rails, ruby

Разлика между релсите 2.3 и релсите 3.2 седмици метод - рубинка върху релсите, рубин

Забелязах различно поведение между Rails 2 и Rails 3, когато става въпрос за обработка на дата на ActiveSupport.

Когато стартирате следния код в 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, Rails 2 извежда следното

>> 1.week
=> 7 days

Където Rails 3 изхода

>> 1.week
=> 604800

Може ли някой да обясни какво се случва тук и как мога спретнато да прелиствам за период от една седмица в Rails 3.

Отговори:

1 за отговор № 1

Нямам представа защо не работи, но това изглежда:

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