2011-12-20 12 views
0

私のUserMailerにはいくつかの異なるメーラーメソッドがあります。各メーラーの前に、メーラーが続行する必要があるかどうかを判断するDRY方法がありますか?UserMailerでは、電子メールを送信するときのグローバルルールを設定する方法はありますか?

基本的には、ユーザーがサイトにいるかどうかを確認したいと思っています。彼らが電子メールではなくサイトにいる場合は、私はすべてのuser_mailersに対して、これをそれぞれに対して行いたいと思います。

アイデア?ありがとう

+0

(あなたが同じファイルにそれを行うことができます)を登録、彼らは現在ログインしていますか? –

答えて

1

インターセプタを使用して、必要な変更を行うことができます。まず、config/initializersにインターセプタを定義する:意味、

class MailInterceptor 
    def self.delivering_email(message) 
    # bend the message to your will... 
    end 
end 

をし、それがサイトで

ActionMailer::Base.register_interceptor(MailInterceptor) 
+1

インターセプタの使用方法の詳細については、このRailsCast(終わり近く)http://asciicasts.com/episodes/206-action-mailer-in-rails-3を参照してください。 – Unixmonkey