From a729967e8a4a924d6cccd935b9b1d779eaf7e4c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javi=20Mart=C3=ADn?= Date: Sat, 24 Sep 2022 15:37:35 +0200 Subject: [PATCH] Make Devise::Mailer inherit from ApplicationMailer This way we remove duplication in the `from:` proc, the helpers, and the methods we're about to write. --- app/mailers/devise_mailer.rb | 1 - config/initializers/devise.rb | 6 +++++- spec/mailers/devise_mailer_spec.rb | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/mailers/devise_mailer.rb b/app/mailers/devise_mailer.rb index 30d404a9f..a3f3ed271 100644 --- a/app/mailers/devise_mailer.rb +++ b/app/mailers/devise_mailer.rb @@ -1,5 +1,4 @@ class DeviseMailer < Devise::Mailer - helper :application, :settings, :mailer include Devise::Controllers::UrlHelpers default template_path: "devise/mailer" diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index cf6788ff9..aeb30c2f1 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -14,11 +14,15 @@ Devise.setup do |config| # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - config.mailer_sender = proc { "'#{Setting["mailer_from_name"]}' <#{Setting["mailer_from_address"]}>" } + # We're not setting it here because it's set by the ApplicationMailer class + # config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com" # Configure the class responsible to send e-mails. config.mailer = "DeviseMailer" + # Configure the parent class responsible to send e-mails. + config.parent_mailer = "ApplicationMailer" + # ==> ORM configuration # Load and configure the ORM. Supports :active_record (default) and # :mongoid (bson_ext recommended) by default. Other ORMs may be diff --git a/spec/mailers/devise_mailer_spec.rb b/spec/mailers/devise_mailer_spec.rb index b5c0fb124..3a53daa08 100644 --- a/spec/mailers/devise_mailer_spec.rb +++ b/spec/mailers/devise_mailer_spec.rb @@ -18,7 +18,7 @@ describe DeviseMailer do email = DeviseMailer.confirmation_instructions(create(:user), "ABC") - expect(email).to deliver_from "'New organization' " + expect(email).to deliver_from "New organization " end end end