ruby-on-rails - the - tutorial django
¿Establecer variables de instancia en Action Mailer? (1)
Solo un poco tarde ...
Puede usar devoluciones de llamada before_action
http://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-callbacks
Me pregunto ¿cuál es una forma limpia y convencional para establecer variables de instancia en los anuncios publicitarios? Actualmente, he redefinido el método de initialize
en Mailer
y posteriormente sobrescribo ciertas variables de instancia cuando es necesario en cualquier correo que herede de Mailer
.
class Mailer < ActionMailer::Base
attr_reader :ivar
def initialize
super
@ivar = :blah
...
end
end
Esto solo me parece extraño porque lo new
es un método privado para los anuncios publicitarios. Por ejemplo, si tuviera que tratar de recuperarlos en la consola de rails, necesito hacer lo siguiente:
mailer = Mailer.send(:new)
mailer.ivar
También he considerado agregarlos al hash default
así:
class Mailer < ActionMailer::Base
default ivar: :blah,
...
end
El único problema es que necesito crear un método como este para recuperar los ivars:
def default_getter(ivar)
self.class.default[ivar]
end
De ninguna manera me parece particularmente limpio. Consideré usar variables de clase, pero me pregunto si alguien podría sugerir una manera más limpia. Gracias.