with tutorial the framework español djangoproject desde cero applications ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 actionmailer

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.