Como alterar o “Devise: assunto do email de instrução de redefinição de senha”

Só não consigo alterar o assunto do e-mail “instrução de redefinição de senha”. Eu mudei o notifer.rb no Mailer para sobrescrever o assunto padrão do email do Devise. Mas não está funcionando.

Aqui na minha aplicação, há um assunto de email padrão dentro do arquivo .iml do Devise. Mas quero tornar isso dynamic, alterando os dados do database.

você pode alterá-lo no arquivo devise.en.yml no diretório de fertilizantes

E defina seu próprio assunto para qualquer mala direta

mailer: confirmation_instructions: subject: 'Confirmation instructions' reset_password_instructions: subject: 'Reset password instructions' unlock_instructions: subject: 'Unlock Instructions' 

Eu consegui que isso funcionasse criando minha própria subclass de 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 

E, em seguida, modificando o initializer devise.rb para usar o meu mailer.

 # Configure the class responsible to send e-mails. config.mailer = 'DeviseMailer' 

Você pode escrever seu próprio método dentro de seu controlador e chamar o respectivo modelo de mailer. Isso irá ajudá-lo .. Outras outlook, haverá uma página de visualização para enviar instruções de reset. Mude o conteúdo lá ..

Alterar opção :subject :

 class DeviseMailer < Devise::Mailer def reset_password_instructions(record, token, opts={}) opts[:subject] = 'SOME DB DATA' super end end 

Se você estiver disposto a traduzir suas mensagens do Devise, que foi o meu caso, uma prática melhor seria criar um novo arquivo yml em config/locale e alterar o código do config/locale seu aplicativo em config/application.rb

  1. Para ilustrar, tive que criar devise.pt-BR.yml dentro de config/locale .

  2. Então eu copiei suas traduções da internet, neste link .

  3. Finalmente, eu defino o novo local do meu aplicativo em config/application.rb seguinte forma:

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

Espero que ajude alguns de vocês tendo o mesmo problema que os meus.

Para idioma estrangeiro padrão (exemplo japonês)

PASSO 1 Crie um ‘ja.yml’ em config / locales / (ou qualquer nome de arquivo)

 ja: devise: mailer: confirmation_instructions: subject: '仮会員登録完了のお知らせ' reset_password_instructions: subject: 'パスワード再設定手順のお知らせ' 

PASSO 2 Em config / environments / development.rb

 config.i18n.default_locale = :ja 

PASSO 3 Reinicie o servidor