「パスワード再設定のご案内」メールの件名が変更できません。メーラーの notifer.rb を変更して、Devise のデフォルトのメール件名を上書きしました。しかし、それは機能していません。
ここで私のアプリケーションには、Devise .yml ファイル内にデフォルトのメール件名があります。しかし、DB からデータをプルして動的に変更したいと考えています。
「パスワード再設定のご案内」メールの件名が変更できません。メーラーの notifer.rb を変更して、Devise のデフォルトのメール件名を上書きしました。しかし、それは機能していません。
ここで私のアプリケーションには、Devise .yml ファイル内にデフォルトのメール件名があります。しかし、DB からデータをプルして動的に変更したいと考えています。
intilizer ディレクトリの devise.en.yml ファイルで変更できます
そして、任意のメーラーに独自の件名を設定します
mailer:
confirmation_instructions:
subject: 'Confirmation instructions'
reset_password_instructions:
subject: 'Reset password instructions'
unlock_instructions:
subject: 'Unlock Instructions'
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'
コントローラー内に独自のメソッドを記述し、それぞれのメーラー テンプレートを呼び出すことができます。これは役に立ちます.. ビューを工夫しないと、リセット命令を送るためのビュー ページが表示されます。そこで内容を変更。。