5

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

例如,假设用户有一个is_subscriber可以为真或假的属性。该方法将包含如下内容:

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')

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

4

1 回答 1

12

您可以在 actionview 中使用@_message,它使您可以访问消息对象,您可以从中访问“to”、“from”等字段。

我有一个案例,我需要在所有邮件上都有一个取消订阅按钮,所以将它放在我的布局中,该布局在邮件程序中使用。我使用上述解决方案来查找邮件接收者并为相应的邮件实施退订。

于 2013-04-04T11:17:38.507 回答