RoR, Können nicht Durchlaufen von DateTime/TimeWithZone
Habe ich eine einfache Aufgabe, bei der ich wollen, nehmen Sie ein Anfangsdatum und ein Enddatum und-Schleife über die Tage/Termine. Dieser code wird verwendet in meiner db:seed-rake-task. Derzeit mein code hat sich durch die folgenden versuche.
(someModel.start_date.to_datetime..someModel.end_date.to_datetime).each {
|x| puts x
}
......
(someModel.start_date...someModel.end_date).each { |x| puts x }
In jedem Fall, bekomme ich eine Fehlermeldung.
can't iterate from ActiveSupport::TimeWithZone
or
can't iterate from DateTime
Wenn jemand irgendwelche Ahnung, wie man die Iteration über einen Bereich von DateTimes wäre ich sehr dankbar.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie sicherstellen, dass Sie es mit einem
Date
Objekt (durch Aufrufto_date
), dann funktioniert alles wie erwartet:Oder mit einer Reihe:
Können Sie nicht Durchlaufen, von
DateTime
. Aber man kann Durchlaufen, wenn Anfang und EndeIntervall sind Instanzen von
Date
. Wandeln Sie diese wenn möglich.Anschaut und dann diese
Date
Methoden:verwenden, anstatt
each
Wenn Sie möchten, beurteilen Sie den Bereich, den Sie vielleicht eine loop-und step-jeden Tag mit so etwas wie
someModel.start_date + 1.day.to_i