Tengo una aplicación Rails, que usa devoluciones de llamada mucho ... por lo que tengo bastantes funciones llamadas: after_create y: after_commit en varios modelos.¿Cómo organizar complejas devoluciones de llamada en Rails?
Me pregunto si la forma en que lo estoy haciendo ahora es lo mejor.
Básicamente tengo el siguiente escenario:
Class Parent < ActiveRecord::Base
has_many :children
after_create :first_function
after_commit :last_function
def first_function
if !self.processed?
self.children.create(:name => "Richard The Lion Heart")
self.processed = true
self.save!
end
end
def last_function
if self.processed?
if !self.processing?
self.process
self.save!
self.processing = true
self.save!
end
end
end
end
para que pueda ver todo el asunto depende de algunos controles booleanos dual extraña porque de lo contrario second_function se está llamado cada vez que se actualiza el modelo y que puede ser actualizada por la función en sí y por lo tanto la función se llama repetitivamente.
En general, esto me lleva al caso en el que tengo que introducir una nueva verificación booleana para cada devolución de llamada para disparar. Funciona pero no lo veo tan elegante. ¿Qué me estoy perdiendo?
se puede hacer esto before_save? – cpuguy83