decisión de diseño: observer o mé todo setter


#1

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


#2

El día 4 de noviembre de 2008 18:12, Nacho Sánchez
removed_email_address@domain.invalid
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.


#3

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 G. removed_email_address@domain.invalid