Rails for ActionMailer - Cómo deshabilitar un Layout para un determinado correo
Tengo un user_mailer con un layout.
Para uno de mis métodos actionmailer quiero que el correo NO use el diseño predeterminado. Pero no puedo ver para encontrar un ajuste para Ningún Diseño.
¿Alguna idea?
24
Author: AnApprentice, 2011-03-07
4 answers
Simplemente especifique en su anuncio de correo:
layout false
También puede agregar :only => my_action
(o :except
) para limitar los métodos a los que se aplica, de la siguiente manera:
layout false, :only => 'email_method_no_layout'
38
Author: Andrew Marshall,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-27 08:27:55
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-27 08:27:55
El método layout puede aceptar el nombre de un método; use el método para determinar si mostrar un layout y devolver ese nombre o false.
layout :choose_layout
...
private
def choose_layout
if something
return false
else
return 'application'
end
end
3
Author: DGM,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-07 01:57:57
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-03-07 01:57:57
Lo hice usando una pequeña función, mirando el nombre de la acción y devolviendo el diseño de correo correcto a usar:
class TransactionMailer < ApplicationMailer
layout :select_layout
def confirmation_email contact
#code
end
private
def select_layout
if action_name == 'confirmation_email'
false
else
'mailer'
end
end
end
3
Author: pastullo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-20 12:15:37
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-20 12:15:37
También podría ser muy incompleto y hacer esto antes de la llamada a mail( ) al final de la acción de correo específica:
@_action_has_layout = false
1
Author: GigaBass,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-12 16:09:04
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-12 16:09:04