2011-11-10 81 views
1

我有兩個郵件程序:如何共享ActionMailers之間的方法

class Mailer1 < ActionMailer::Base 
    def mail 
    if check_something? 
    end 
    end 

    private 

    def check_something? 
    end 
end 


class Mailer2 < ActionMailer::Base 
    def another_mail 
    if check_something? 
    end 
    end 

    private 

    def check_something? 
    end 
end 

(我知道我可以在視圖助手扳爲實際的郵件模板,但如何使之成爲控制型「幫手」工作方法 - 正如ActionMailers最近從抽象控制器派生出來的那樣)。

那麼,我可以在哪裏聲明check_something ?,以及如何使它可供我的郵件程序訪問?

回答

1

只需創建一個基類,就像你在默認情況下的ApplicationController得到您的HTTP控制器:

class AppMailer < ActionMailer::Base 
    protected 
    def check_something? 
    end 
end 

class Mailer1 < AppMailer 
    def mail 
    if check_something? 
    end 
    end 
end 


class Mailer2 < AppMailer 
    def another_mail 
    if check_something? 
    end 
    end 
end 
+0

我也看不到任何其他方式。這樣做會很好。謝謝。 – Joerg