2011-06-20 40 views
23

Estoy intentando hacer un before_save en una aplicación de rails condicional, pero parece que no funciona.¿Hay alguna forma de hacer un condicional before_save?

before_save method_call_to_run if self.related_model.some_method_that_returns_t_or_f? 

Si el 'some_method_that_returns_t_or_f' devuelve verdadero, quiero que se ejecute el método antes de que guarda el objeto de lo contrario sólo quiero hacer caso omiso de la before_save.

Respuesta

2

En Rails 5 he tenido éxito definiendo un método privado que contiene la lógica booleana y luego la pasa como un símbolo (esa última parte parece un requisito). En otras palabras:

before_save do_something, if: :private_boolean_method?

Es una diferencia sutil pero parece como una solución elegante.

Cuestiones relacionadas