[英]How to change “Devise: password reset instruction email's subject”
我只是無法更改“密碼重置說明”電子郵件的主題。 我在Mailer中更改了notifer.rb,以覆蓋Devise默認電子郵件主題。 但這不起作用。
在我的應用程序中,Devise .yml文件中包含默認的電子郵件主題。 但是我想通過從數據庫中提取數據來使其動態變化。
您可以在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'
更改選項:subject
:
class DeviseMailer < Devise::Mailer
def reset_password_instructions(record, token, opts={})
opts[:subject] = 'SOME DB DATA'
super
end
end
您可以在控制器內編寫自己的方法,然后調用相應的郵件程序模板。 這將對您有幫助。.其他視圖,將有一個視圖頁面發送復位指令。 在那里更改內容。
對於默認外語(例如日語)
步驟1在config / locales /(或任何文件名)中創建一個“ ja.yml”
ja:
devise:
mailer:
confirmation_instructions:
subject: '仮會員登録完了のお知らせ'
reset_password_instructions:
subject: 'パスワード再設定手順のお知らせ'
步驟2在config / environments / development.rb
config.i18n.default_locale = :ja
步驟3重新啟動服務器
如果您願意翻譯Devise消息(我就是這種情況),那么更好的做法是在config/locale
創建一個新的yml文件,並在config/application.rb
更改應用程序的語言環境
為了說明,我必須在config/locale
內創建devise.pt-BR.yml
。
然后,我從Internet復制了此鏈接的翻譯。
最后,我在config/application.rb
設置應用程序的新語言環境,如下所示:
config.i18n.default_locale = :'pt-BR'
希望它可以幫助一些與我有同樣問題的人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.