Sé que before_filter es solo para controladores en Rails, pero me gustaría algo como esto para un modelo: cada vez que se llame a un método en mi modelo, me gustaría ejecutar un método que determine si el método llamado debería ejecutarse . Conceptualmente, algo como esto:Modelo de rieles "before_filter"?
class Website < ActiveRecord::Base
before_filter :confirm_company
def confirm_company
if self.parent.thing == false?
return false
end
end
def method1
#do stuff
end
end
Así que cuando llamo @ website.method1, primero llame confirm_company, y si vuelvo falsa, no se ejecutará metodo1. ¿Rails tiene una funcionalidad como esta? Espero que sólo estoy perdiendo algo obvio aquí ...
¿Quiere decir [Active Record devoluciones de llamada] (http://guides.rubyonrails.org/active_record_validations_callbacks.html#callbacks-overview)? – Mischa
Sí, una devolución de llamada es lo que necesito, supongo. Pero ninguna de las devoluciones de llamada disponibles puede hacer lo que estoy buscando. No estoy guardando, validando, inicializando ... Estoy llamando a un método. –
puede usar un objeto proxy y delegar en el modelo si se cumple su condición – apneadiving