/ / Differenza tra Rails 2.3 e Rails 3.2 'settimane' metodo - ruby-on-rails, ruby

Differenza tra Rails 2.3 e Rails 3.2 'settimane' metodo - ruby-on-rails, ruby

Ho notato un comportamento diverso tra Rails 2 e Rails 3 per quanto riguarda la gestione delle date di ActiveSupport.

Quando eseguo il codice seguente in un'applicazione Rails 2.3, viene eseguito come mi aspetto e le date vengono visualizzate una settimana alla volta.

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

Quando provo lo stesso codice in un'applicazione Rails 3 ottengo il seguente.

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

Sembra che i problemi riguardino il modo in cui Rails 3 sta ora gestendo il metodo .weeks, Rails 2 restituisce quanto segue

>> 1.week
=> 7 days

Dove uscite Rails 3

>> 1.week
=> 604800

Qualcuno può spiegare cosa sta succedendo qui e come posso ripetere iteramente su un intervallo di date una settimana alla volta in Rails 3.

risposte:

1 per risposta № 1

Non ho idea del motivo per cui non funziona, ma questo sembra:

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