如何从ActionMailer视图的“收件人”字段中获取电子邮件地址?

时间:2012-06-20 14:49:34

标签: ruby-on-rails ruby-on-rails-3 views actionmailer helper

我想从邮件程序视图中访问一个方法,该方法根据发送电子邮件的用户返回一个布尔值。

例如,假设用户的属性is_subscriber可以是true或false。 该方法将包含以下内容:

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

我想从邮件程序视图中访问此方法。

问题是,我的应用程序中有很多邮件程序(UserMailer,SubscriptionMailer,FollowUpMailer),并且依赖于每个邮件程序的@user实例变量似乎有点危险。

我是否可以通过“示例”字段访问“to”字段中的电子邮件地址,以便我可以通过他的电子邮件地址找到用户:

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

这样做是个好主意还是有更通用的方法来制作这样的辅助方法?

1 个答案:

答案 0 :(得分:9)

您可以在actionview中使用 @_ message ,这样您就可以访问消息对象,您可以从中访问“to”,“from”等字段。

我有一个案例,我需要在所有邮件上取消订阅按钮,所以把它放在我的布局中,用于邮件。我使用上面的解决方案找到邮件接收者并实现取消订阅各自的邮件。