1

我正在尝试将我的应用程序的名称放在 action mailer 发送的电子邮件的主题行中。使用电子邮件地址的默认值执行此操作没有问题,但是当我尝试将其添加到主题时,它会将其作为纯文本发送<%= app_name %>

这是我的邮件程序/user_mailer.rb:

class UserMailer < ActionMailer::Base  
  add_template_helper(ApplicationHelper)
  extend ApplicationHelper

  default from: "#{app_name} <#{system_email}>"

  def reset_password_email(user)
    @user = user
    @url  = "#{root_url}/password_resets/#{user.reset_password_token}/edit"
    mail(:to => user.email,
         :subject => "Reset Your Password | #{app_name}")
  end
end

这是我的应用程序助手中的内容:

  def app_name
    'Tip Share'
  end

  def app_domain
    'tipshare.herokuapp.com'
  end

  def system_email
    'info@wingardcreative.com'
  end

既不工作#{app_name}也不<%= app_name %>工作。我该怎么做呢?

4

2 回答 2

1

您是否尝试过像这样添加它:

include ApplicationHelper
于 2012-10-10T19:50:40.903 回答
0

通过扩展UserMailerwith ApplicationHelper,这些方法可以作为类方法使用——这就是引用 indefault from: "#{app_name} <#{system_email}>"起作用的原因。在该reset_password_email方法中,app_name将是一个未定义的局部变量。所以你要么需要另外include ApplicationHelper,要么用self.class.app_name.

于 2012-10-11T06:25:14.057 回答