Mejores prácticas de Rails Mailer: ¿controlador o devolución de llamada after_create? [cerrado]
En las aplicaciones comunes de Ruby on Rails 3/4, hay dos opciones para entregar el correo después de la creación de un modelo:
1) Enviar el correo directamente desde la acción de creación del controlador
#listings_controller.rb
def create
@listing.create(params[:listing])
if @listing.save
ListingMailer.new_listing_notice(@listing).deliver
format.html {redirect_to @listing}
...
end
end
o2) Enviar el correo desde una devolución de llamada modelo
#listing.rb
class Listing
after_create :notify
...
def notify
ListingMailer.new_listing_notice(self).deliver
end
end
¿Existe un consenso actual sobre qué camino es mejor? El envío desde el controlador proporciona más control, pero si siempre se enviará un correo, ¿hay alguna razón para no usar la devolución de llamada? ¿Es sobre todo una cuestión de estilo, o hay otras preocupaciones importantes?