2016-09-19 2 views
0

Ein Sidekiq Worker sendet PDF-Anhang in E-Mails an Clients. Der Worker überprüft täglich, ob der Sonntag dann den wöchentlichen Bericht sendet, wenn heute der 15. des Monats ist, dann der zweimonatliche Bericht und der letzte Tag des Monats dann der monatliche Bericht. Der Zustand sieht ungefähr wie folgt aus:Rails 4: Überprüfen Sie, ob heute Sonntag, 15. des Monats oder letzter Tag des Monats ist

if sunday? 
    # send weekly 
elsif 15th of month 
    # send Bi-monthly 
elsif last_day_of_month 
    # send Monthly 
end 

Wie, wenn seine Sonntag, 15. Monat und letzten Tag des Monats überprüfen?

Antwort

6

Rails hat viele interessante Methoden für diese Art von Datumsberechnungen:

today = Date.today 

if today.sunday? 
    # send weekly 
elsif today.day == 15 
    # send bi-monthly 
elsif today == today.end_of_month 
    # send monthly 
end 
+0

Danke, genau das, was ich brauchte. – Arif

+0

In reinem Ruby sind die If- und die erste Elsif-Klausel identisch. Die letzte benötigt einen Teil von Rails, könnte aber durch 'elsif today == Date.new (today.year, today.mon, -1)' ersetzt werden, was reiner Ruby ist. –

Verwandte Themen