Forum: Rails-ES decisión de diseño: observer o mé todo setter

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6dd10772cfa5333c5db924091464ed95?d=identicon&s=25 Nacho Sanchez (nachocab)
on 2008-11-04 18:13
(Received via mailing list)
Hola,
Quería pediros vuestra opinión sobre si en este caso sería mejor usar un
Observer o un método de asignación de atributos:

class Texto < ActiveRecord::Base
  has_many :parrafos
end

class Parrafo < ActiveRecord::Base
  belongs_to :texto
end

Quiero que los párrafos se creen automáticamente cuando cree un texto.
¿Cuál
es la mejor forma?
Opción 1) Usar un TextoObserver que cree los párrafos:
class TextoObserver < ActiveRecord::Observer
  def after_save(texto)
    ...
  end
end
Opción 2) Usar un método de asignación de atributos:
class Texto < ActiveRecord::Base
  def contenido=(texto)
    Parrafo.crear_parrafos_a_partir_de_texto(texto)
  end
end

module ParrafosHelper
  def crear_parrafos_a_partir_de_texto(texto)
    ...
  end
end

¿Qué pensáis?

Muchas gracias,

Nacho
6f952bee7570a3db2ecba5b06c0062b3?d=identicon&s=25 Fernando Guillen (Guest)
on 2008-11-04 18:27
(Received via mailing list)
El día 4 de noviembre de 2008 18:12, Nacho Sánchez
<nachocab@gmail.com>
escribió:>
> Quiero que los párrafos se creen automáticamente cuando cree un texto. ¿Cuál
> es la mejor forma?

Yo nunca me he probado a usar Observers.. así que igual mi opinión es
sesgada pero este caso yo lo resolvería con un before_save.

Saludos
f.
6dd10772cfa5333c5db924091464ed95?d=identicon&s=25 Nacho Sanchez (nachocab)
on 2008-11-04 19:00
(Received via mailing list)
Gracias, creo que tienes razón. Los observers es mejor usarlos para
cosas
que no tengan nada que ver con la clase a la que observan (como enviar
un
email cada vez que se actualice un registro) y en este caso sí tiene que
ver.

Un saludo,

Nacho

2008/11/4 Fernando Guillen <fguillen.mail@gmail.com>
This topic is locked and can not be replied to.