【问题标题】:How to get email address in the "to" field from ActionMailer view?如何从 ActionMailer 视图的“收件人”字段中获取电子邮件地址?
【发布时间】:2012-06-22 17:52:57
【问题描述】:

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

例如,假设用户有一个属性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')

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

【问题讨论】:

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


    【解决方案1】:

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

    我有一个案例,我需要在所有邮件上都有一个取消订阅按钮,因此将它放在我的布局中,该布局在邮件中使用。我使用上述解决方案找到了邮件接收者并为相应的邮件实现了取消订阅。

    【讨论】:

    • 如果您的“收件人”字段有多个收件人并且您不想使用密件抄送怎么办?似乎@_message 只是返回邮件对象,但在这种情况下检索实际收件人是不可能的。
    猜你喜欢
    • 2012-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-24
    • 2023-02-21
    • 2010-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多