2012-04-09 4 views
1

전자 메일 알림을 설정하려는 레일 프로젝트가 있습니다. 예를 들어 레코드 X가 5 일 후에 만료되면 소유자에게 전자 메일을 보냅니다. 새 사용자가 등록 할 때 전자 메일 알림을 설정했지만 조건부 (x = y이면 전자 메일 보내기)를 기반으로 전자 메일을 보내는 방법을 알아낼 수 없습니다. 도와주세요!!ActionMailer - 날짜 조건을 기반으로 이메일을 전송합니다.

답변

1

레이크 작업을 사용할 수 있습니다. cron으로 설정하여 하루에 한 번 실행하십시오. 수정하고 사용할 수 있습니다

예 레이크 태스크 코드 :

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

사용 crontab -e이 crontab에 당신의 작업을 추가 :

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

당신이 원하는 목적지 넣어, 새로운 bash는 스크립트를 확인합니다. 다음 행을 추가하십시오 :

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에 있습니다. –

관련 문제