2011-02-15 11 views

Respuesta

50

encontrado la respuesta que se sienta en el wiki Diseñar Github,

de lectura que ayuda. ;-)

config.to_prepare do 
    Devise::Mailer.layout "simple" # simple.haml or simple.erb 
    Devise::Mailer.helper :mailer 
end 

Aquí es la referencia de la página wiki: How To: Create custom layouts

+10

Alternativamente, puede agregar 'Devise :: Mailer.layout" simple "' a la parte superior de su 'devise.rb 'inicializador, antes del bloque de configuración. – leppert

+0

¿Podría aclarar qué significa '# email.haml or email.erb'? ¿Querías escribir '# simple.haml o simple.erb'? –

+0

Reparado. (El comentario debe ser '# simple.haml o simple.erb' - se ha copiado y pegado desde la wiki de Devise referenciada, pero solo se ha personalizado la cadena' "simple" '. –

-2

Trate de reabrir la clase Diseñar :: Mailer:

class Devise::Mailer < ActionMailer::Base 
    layout 'sometemplate' 
end 
+0

no funcionó. También intenté varias otras variaciones en la clase, pero no anuló la plantilla de diseño, o no plantilla – holden

16
# 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 el servidor de rieles a medida que cambia un inicializador.

+2

esto funciona en Rails 4 –

2

También hay una opción parent_mailer en devise.rb, digamos que usted está enviando mensajes de correo electrónico fuera de legado, por defecto esta opción se establece en ActionMailer :: Base, pero si usted tiene una ApplicationMailer que ya está heredando de ActionMailer :: Base, podría cambiar parent_mailer a esto y conseguir todos sus diseños y configuraciones fuera de la caja.

En cualquier caso es mucho más limpio utilizar esto para mantener el flujo de diseños de carriles en sus aplicaciones si no desea cambiar nada en el controlador de diseño de correo.

# 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 
Cuestiones relacionadas