devise.ja.ymlに個別に定義しても出来ますが、アプリ名を1箇所で定義して共通化したいので、少しカスタマイズしてみました。
冗長な方法だと
config/locales/devise.ja.yml
ja: devise: mailer: confirmation_instructions: subject: "[RailsAppOrigin] メールアドレス確認のお願い" admin_user_subject: "[RailsAppOrigin Admin] メールアドレス確認のお願い" email_changed: subject: "[RailsAppOrigin] メールアドレス変更完了のお知らせ" admin_user_subject: "[RailsAppOrigin Admin] メールアドレス変更完了のお知らせ" reset_password_instructions: subject: "[RailsAppOrigin] パスワード再設定方法のお知らせ" admin_user_subject: "[RailsAppOrigin Admin] パスワード再設定方法のお知らせ" password_change: subject: "[RailsAppOrigin] パスワード変更完了のお知らせ" admin_user_subject: "[RailsAppOrigin Admin] パスワード変更完了のお知らせ" unlock_instructions: subject: "[RailsAppOrigin] アカウントロックのお知らせ" admin_user_subject: "[RailsAppOrigin Admin] アカウントロックのお知らせ"
共通化してみる
config/locales/ja.yml に定義して、ページタイトルにも使っているので、これを使いたい。
ja: app_name: "RailsAppOrigin"
config/initializers/devise.rb に追加
config.mailer = 'DeviseMailer'
app/mailers/devise_mailer.rb を作成
class DeviseMailer < Devise::Mailer def confirmation_instructions(record, token, opts = {}) update_mail_subject(super) end def reset_password_instructions(record, token, opts = {}) update_mail_subject(super) end def unlock_instructions(record, token, opts = {}) update_mail_subject(super) end def email_changed(record, opts = {}) update_mail_subject(super) end def password_change(record, opts = {}) update_mail_subject(super) end private # メールタイトルにアプリ名を追加 def update_mail_subject(mail) mail.subject = mail.subject.gsub(/%{app_name}/, t('app_name')) mail end end
config/locales/devise.ja.yml を変更
ja: devise: mailer: confirmation_instructions: subject: "【%{app_name}】メールアドレス確認のお願い" admin_user_subject: "【%{app_name} Admin】メールアドレス確認のお願い" email_changed: subject: "【%{app_name}】メールアドレス変更完了のお知らせ" admin_user_subject: "【%{app_name} Admin】メールアドレス変更完了のお知らせ" reset_password_instructions: subject: "【%{app_name}】パスワード再設定方法のお知らせ" admin_user_subject: "【%{app_name} Admin】パスワード再設定方法のお知らせ" password_change: subject: "【%{app_name}】パスワード変更完了のお知らせ" admin_user_subject: "【%{app_name} Admin】パスワード変更完了のお知らせ" unlock_instructions: subject: "【%{app_name}】アカウントロックのお知らせ" admin_user_subject: "【%{app_name} Admin】アカウントロックのお知らせ"
【参考】ここまでのコミット内容
https://dev.azure.com/nightonly/rails-app-origin/_git/rails-app-origin/commit/49e392efbd482f770b2db448feec79af67d56a10