Con los observadores eliminados oficialmente de Rails 4.0 , tengo curiosidad por saber qué otros desarrolladores están usando en su lugar. (Aparte de usar la gema extraída.) Si bien los observadores ciertamente fueron abusados y fácilmente podrían volverse difíciles de manejar a veces, hubo muchos casos de uso fuera del solo borrado de caché donde fueron beneficiosos.
Tomemos, por ejemplo, una aplicación que necesita rastrear cambios en un modelo. Un observador podría observar fácilmente los cambios en el Modelo A y registrar esos cambios con el Modelo B en la base de datos. Si desea observar los cambios en varios modelos, entonces un solo observador podría manejar eso.
En Rails 4, tengo curiosidad por saber qué estrategias están usando otros desarrolladores en lugar de Observers para recrear esa funcionalidad.
Personalmente, me estoy inclinando hacia una especie de implementación de "controlador gordo", donde estos cambios se rastrean en el método de creación / actualización / eliminación del controlador de cada modelo. Si bien aumenta ligeramente el comportamiento de cada controlador, ayuda en la legibilidad y la comprensión, ya que todo el código está en un solo lugar. La desventaja es que ahora hay un código muy similar disperso en varios controladores. Extraer ese código en los métodos auxiliares es una opción, pero aún le quedan llamadas a esos métodos en todas partes. No es el fin del mundo, pero tampoco en el espíritu de "controladores flacos".
Las devoluciones de llamada de ActiveRecord son otra opción posible, aunque personalmente no me gusta, ya que, en mi opinión, tiende a acoplar dos modelos diferentes.
Entonces, en el mundo de Rails 4, sin observadores, si tuviera que crear un nuevo registro después de que otro registro fue creado / actualizado / destruido, ¿qué patrón de diseño usaría? ¿Controladores gordos, devoluciones de llamada ActiveRecord o algo completamente diferente?
Gracias.