Ich muss mehrere Monate in einer Ruby on Rails-Anwendung durchlaufen. Für jeden Monat muss ich den ersten und letzten Tag des jeweiligen Monats finden. Diese Daten werden dann in einer separaten Abfrage verwendet, um Ereignisse zu finden, die während dieser Daten auftreten, und Berechnungen für sie auszuführen.
Zuerst habe ich versucht, etwas wie:
%Vor%Natürlich wird das Jahr in diesem Fall nicht aktualisiert, wenn vor 11 Monaten das vorherige Jahr wieder aufgenommen wurde. Und ich denke nicht, dass diese Art von for / each-Schleife funktioniert. Ich habe auch versucht, die Zahlen zu einem Array zuzuordnen und die gleiche Methode zu verwenden, aber einen Fehler erhalten.
Was ist der beste Weg, um so etwas zu erreichen?
Zählen Sie zuerst die Anzahl der Monate zwischen zwei Daten ( mit freundlicher Genehmigung von Massimiliano Peluso ) :
%Vor%Dann suchen Sie ab dem Startmonat, der jeden Monat danach zählt, das erste / letzte Datum und fügen Sie es an ein Akkumulatorfeld an.
%Vor% Jetzt wird dates
ein Array mit verschachtelten Date
Paaren enthalten, die dem ersten und letzten Datum jedes Monats entsprechen. Dieses dates
-Array wird für die Verarbeitung leicht zu iterieren sein.
Dies ist getestet und funktioniert in Rails 3.2.5 / Ruby 1.9.3p194
Tags und Links ruby ruby-on-rails-3 ruby-on-rails loops