2012-04-09 14 views
1

私は電子メール通知を設定したいというレールプロジェクトがあります。たとえば、レコードXが5日以内に期限切れになる場合は、所有者に電子メールを送信します。新規ユーザー登録時に電子メール通知を設定しましたが、条件付き(x = yの場合は電子メールを送信)に基づいて電子メールを送信する方法を理解できません。助けてください!!ActionMailer - 日付条件に基づいてメールをメールで送信

答えて

1

レーキタスクを使用できます。 cronで1日1回実行するように設定します。

例rakeタスクを変更できるコードと使用:

task :send_reminds => :environment do 
    Record.all.each do |remind| 
    UserMailer.remind_email(record).deliver if record.expires_in(5.days) 
    end 
end 

あなたが好きな場所にそれを置く、新しいbashスクリプトを作成します。

#!/bin/bash 
cd /your/path/to/rails/app 
rake send_reminds 

使用crontab -eのcrontabにあなたのタスクを追加します。この行を追加してください:

0 0 * * * /your/path/to/bash/script 

毎日真夜中に実行します。

スクリプトにchmod + xを設定することを忘れないでください!

+0

はcron a gemですか?私はかなり新しいレールです。 –

+0

[Cron](http://en.wikipedia.org/wiki/Cron)は、特定の時間にコマンドを実行できるシステムデーモンです。私はあなたが* NIXシステムにいると仮定します。 Windowsを使用している場合は、実行するのが難しくなります。 – methyl

+1

MacOSでもアプリケーションはHeroku上にあります。 –

関連する問題