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

Cri*_*ian 3 views ruby-on-rails actionmailer helper ruby-on-rails-3

我想从邮件程序视图中访问一个方法,该视图返回一个布尔值,具体取决于发送电子邮件的用户.

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

def show_banner?
  FeatureManager.is_feature_available?(:subscription_banners) && !user.is_subscriber
end
Run Code Online (Sandbox Code Playgroud)

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

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

有没有办法可以从"到"字段访问电子邮件地址,如本例所示,我可以通过他的电子邮件地址找到用户:

mail :to => @user.email, :subject => I18n.t('welcome_mail.subject')
Run Code Online (Sandbox Code Playgroud)

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

ram*_*mar 9

您可以在actionview中使用@_message,它允许您访问消息对象,您可以从中访问"to","from"等字段.

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