1

アクションメーラーが送信するメールの件名にアプリの名前を入れようとしています。デフォルトの差出人メールアドレスでこれを行うのに問題はありませんが、それを件名に追加しようとすると、プレーンテキストとして送信されます<%= 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

で拡張UserMailerすることによりApplicationHelper、これらのメソッドはクラス メソッドとして使用できます。これが、参照がdefault from: "#{app_name} <#{system_email}>"機能する理由です。reset_password_emailメソッド内ではapp_name、未定義のローカル変数になります。したがって、追加するかinclude ApplicationHelper、 で呼び出す必要がありますself.class.app_name

于 2012-10-11T06:25:14.057 に答える