2012-06-20 50 views
3

我想從郵件視圖中訪問一個方法,該方法根據郵件發送給用戶的用戶返回一個布爾值。如何從ActionMailer視圖的「to」字段中獲取電子郵件地址?

例如,假設用戶有一個屬性is_subscriber,它可以是true或false。 該方法將包含這樣的事情:

def show_banner? 
    FeatureManager.is_feature_available?(:subscription_banners) && !user.is_subscriber 
end 

我想從郵件視圖中訪問此方法。

問題是,我的應用程序中有很多郵件程序(UserMailer,SubscriptionMailer,FollowUpMailer),並且依靠每個郵件程序的實例變量@user似乎有點危險。

有什麼辦法,我可以從「到」字段在這個例子中訪問電子郵件地址,所以我可以通過他的電子郵件地址查找用戶:

mail :to => @user.email, :subject => I18n.t('welcome_mail.subject') 

這是個好主意要做到這一點,還是有一種更通用的方法來製作這種輔助方法?

回答

7

您可以在actionview中使用 @_message,它使您可以訪問消息對象,從中可以訪問字段'to','from'。

我有一個情況,我需要在所有郵件上取消訂閱按鈕,因此將其放置在我的佈局中,用於跨郵寄者。我使用上述解決方案來查找郵件接收者並實現取消訂閱各自的郵件。

相關問題