next_weekというメッセージ置換があり、基本的にDate.today+7.daysかかります。
ただし、週末にメールを送信したいのですが、next_weekが週末に当たる場合は、これを認識して月曜日にプッシュしてください。
どうすればこれを行うことができますか?
next_weekというメッセージ置換があり、基本的にDate.today+7.daysかかります。
ただし、週末にメールを送信したいのですが、next_weekが週末に当たる場合は、これを認識して月曜日にプッシュしてください。
どうすればこれを行うことができますか?
レール 5:
date.on_weekend?
date.on_weekday?
レール 4:
date.saturday? || date.sunday?
このような:
sunday = 0
saturday = 6
weekend = [saturday, sunday]
mail_date += 1.days while weekend.include?(mail_date.wday)
あなたはこれを使用することができます、
def weekday?
(1..5).include?(wday)
end
小切手 ..
d = Date.today
=> Mon, 04 Oct 2010
d.weekday?
=> true
d = Date.today - 1
=> Sun, 03 Oct 2010
d.weekday?
=> false
mail_date = Date.today + 7.days
if mail_date.wday == 0
mail_date += 1.day
elsif mail_date.wday == 6
mail_date += 2.days
end
# now send your email on mail_date
これは役に立ちましたか?
Action Mailer Queue を使用できます。メールがキューに追加され、 ActionMailer Queue のメソッドを呼び出すたびに、メールが送信されます。したがって、基本的に平日は毎日そのメソッドを呼び出すことができます。週末には、メールはキューに追加されますが、送信されません。月曜日にメソッドを呼び出すと、メールが送信されます。もちろん、rake タスクまたは Rufus Scheduler を使用して、Action mailer メソッドの呼び出しをスケジュールし、毎週自動的に呼び出されるようにすることもできます。