web-dev-qa-db-ja.com

「デバイス:パスワードリセット指示メールの件名」の変更方法

「パスワードリセット手順」のメールの件名を変更できません。 Mailerのnotifer.rbを変更して、Deviseのデフォルトの電子メールの件名を上書きしました。しかし、それは機能していません。

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

25
rony36

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

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

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

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'
15
adambrod

オプションの変更:subject

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

コントローラ内に独自のメソッドを記述し、それぞれのメーラーテンプレートを呼び出すことができます。これはあなたを助けます..他の方法でビューを考案すると、リセット命令を送信するためのビューページがあります。そこで内容を変更してください。

1
UserROR

デフォルトの外国語(日本語の例)の場合

ステップ1 config/locales /(または任意のファイル名)に「ja.yml」を作成します

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

ステップ2 config/environment /development.rb上

config.i18n.default_locale = :ja

ステップサーバーを再起動します

1
mpalencia

私の場合のように、Deviseメッセージを翻訳する場合は、config/localeに新しいymlファイルを作成し、config/application.rbでアプリケーションのロケールを変更することをお勧めします。

  1. 説明のために、devise.pt-BR.yml内にconfig/localeを作成する必要がありました。

  2. それから私はその翻訳をインターネットから このリンク にコピーしました。

  3. 最後に、アプリケーションの新しいロケールをconfig/application.rbに次のように設定します。

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

それが私のものと同じ問題を抱えている皆さんの何人かを助けることを願っています。

0
Flavio Wuensche