ruby-on-rails - personalizado - email corporativo
¿Cómo configuro el dispositivo para utilizar un diseño de correo electrónico personalizado? (4)
Cuando digo diseño no me refiero simplemente a las vistas, las genero. En todos mis correos, estoy usando un diseño por defecto. Que defino en el archivo SomeMailer.rb
#some_mailer.rb
class SomeMailer < ActionMailer::Base
layout ''sometemplate''
¿Hay alguna manera de que pueda hacer esto para el Devise Mailer et al.?
Encontré la respuesta en la wiki de Devise Github,
La lectura que ayuda. ;-)
config.to_prepare do
Devise::Mailer.layout "simple" # simple.haml or simple.erb
Devise::Mailer.helper :mailer
end
Aquí está la referencia de la página wiki: Cómo: Crear diseños personalizados
Intente reabrir la clase Devise :: Mailer:
class Devise::Mailer < ActionMailer::Base
layout ''sometemplate''
end
También hay una opción parent_mailer en devise.rb , digamos que está enviando correos electrónicos fuera del dispositivo, de manera predeterminada, esta opción está establecida en ActionMailer :: Base , pero si tiene un ApplicationMailer que ya está heredando de ActionMailer :: Base , podría cambiar parent_mailer a esto y obtener todos sus diseños y configuraciones fuera de la caja.
En cualquier caso, es mucho más limpio usar esto para mantener el flujo de rieles de diseños en sus aplicaciones si no desea cambiar nada en el controlador de correo de dispositivos.
# devise.rb
config.parent_mailer = ''ApplicationMailer''
# application_mailer.rb
class ApplicationMailer < ActionMailer::Base
# if you need to add a helper module for example
add_template_helper(EmailHelper)
layout ''mailer''
end
# Devise::Mailer inherits from ActionMailer::Base other mail will work fine.
## app/mailers/deviser_mailer.rb
class DeviseMailer < Devise::Mailer
layout ''email''
default from: I18n.t("mailer.default.from")
end
## then in config/initializer/devise.rb
# Configure the class responsible to send e-mails.
config.mailer = "DeviseMailer"
Asegúrese de reiniciar su servidor de rieles cuando haya cambiado un inicializador.