簡體   English   中英

如何更改“ Devise:密碼重置說明電子郵件的主題”

[英]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更改應用程序的語言環境

  1. 為了說明,我必須在config/locale內創建devise.pt-BR.yml

  2. 然后,我從Internet復制了此鏈接的翻譯。

  3. 最后,我在config/application.rb設置應用程序的新語言環境,如下所示:

     config.i18n.default_locale = :'pt-BR' 

希望它可以幫助一些與我有同樣問題的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM