30

「パスワード再設定のご案内」メールの件名が変更できません。メーラーの notifer.rb を変更して、Devise のデフォルトのメール件名を上書きしました。しかし、それは機能していません。

ここで私のアプリケーションには、Devise .yml ファイル内にデフォルトのメール件名があります。しかし、DB からデータをプルして動的に変更したいと考えています。

4

6 に答える 6

61

intilizer ディレクトリの devise.en.yml ファイルで変更できます

そして、任意のメーラーに独自の件名を設定します

                   mailer:
                     confirmation_instructions:
                       subject: 'Confirmation instructions'
                     reset_password_instructions:
                       subject: 'Reset password instructions'
                     unlock_instructions:
                       subject: 'Unlock Instructions'
于 2013-02-24T13:43:44.117 に答える
18

Devise::Mailer の独自のサブクラスを作成して、これを機能させました。

class DeviseMailer < Devise::Mailer
  def reset_password_instructions(record, token, opts={})
    mail = super
    # your custom logic
    mail.subject = "[SOME DB DATA]"
    mail
  end
end

そして、devise.rb イニシャライザーを変更して、私のメーラーを使用します。

# Configure the class responsible to send e-mails.
config.mailer = 'DeviseMailer'
于 2014-01-24T23:08:06.657 に答える
1

コントローラー内に独自のメソッドを記述し、それぞれのメーラー テンプレートを呼び出すことができます。これは役に立ちます.. ビューを工夫しないと、リセット命令を送るためのビュー ページが表示されます。そこで内容を変更。。

于 2013-01-30T10:03:50.683 に答える