2012-03-23 6 views
3

ActiveSupport 날짜 처리와 관련하여 Rails 2와 Rails 3 사이에서 다른 동작을 발견했습니다.Rails 2.3과 Rails 3.2의 차이점 'weeks'방법

Rails 2.3 응용 프로그램에서 다음 코드를 실행하면 한 번에 한 주씩 날짜를 예상하여 출력합니다. 나는 레일 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 

나는 다음을 얻을.

>> 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 

문제는, 3 이제 .weeks 방법을 처리하는 레일 방식으로 것 같다 2 3 개 출력

레일 다음

>> 1.week 
=> 7 days 

출력 레일

>> 1.week 
=> 604800 

사람이 설명 할 수 여기서 일어나는 일과 레일즈 3에서 일주일에 한번 깔끔하게 날짜 범위를 반복 할 수있는 방법.

+1

Rails 3.2에서 제대로 작동합니다. –

+0

Rails 3.2.1을 실행 중이며 같은 버전으로 테스트 했습니까? –

+0

Rails 콘솔에서 3.2.1을 확인했습니다. 내가'1.week.to_i'와 같은 숫자로 강제한다면 나는'1.week'에서 604800을 얻을 수 있습니다. –

답변

1

왜 작동하지 않는지는 알 수 없지만 다음과 같이 생각됩니다.

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

나에게도 7 작품을 넣을 수는 있지만 그 의미는 같지 않거나 1 주일 밖에 읽을 수 없다. –

+0

맞다. 분명치 않다. 그것을 잘 명명 된 방법으로 분석하십시오. –

관련 문제