Con gli osservatori ufficialmente rimossi da Rails 4.0 , sono curioso di sapere cosa stanno usando altri sviluppatori al loro posto. (Oltre all'utilizzo della gemma estratta.) Sebbene gli osservatori fossero certamente maltrattati e talvolta diventassero facilmente ingombranti, c'erano molti casi d'uso al di fuori del solo svuotamento della cache in cui erano utili.
Prendi, ad esempio, un'applicazione che deve tenere traccia delle modifiche a un modello. Un osservatore può facilmente controllare le modifiche sul modello A e registrare tali modifiche con il modello B nel database. Se volessi controllare le modifiche su più modelli, un singolo osservatore potrebbe gestirlo.
In Rails 4, sono curioso di sapere quali strategie stanno usando gli altri sviluppatori al posto di Observers per ricreare quella funzionalità.
Personalmente, mi sto orientando verso una sorta di implementazione di "fat controller", in cui queste modifiche sono tracciate nel metodo di creazione / aggiornamento / eliminazione del controller di ciascun modello. Mentre gonfia leggermente il comportamento di ciascun controller, aiuta nella leggibilità e nella comprensione poiché tutto il codice è in un posto. Il rovescio della medaglia è che ora c'è un codice molto simile sparso su diversi controller. L'estrazione di quel codice nei metodi di supporto è un'opzione, ma ti rimangono ancora chiamate a quei metodi disseminati ovunque. Non è la fine del mondo, ma nemmeno nello spirito dei "controllori magri".
I callback di ActiveRecord sono un'altra possibile opzione, sebbene a me personalmente non piaccia perché tende a accoppiare due modelli diversi troppo vicini secondo me.
Quindi nel mondo di Rails 4, no-Observers, se dovessi creare un nuovo record dopo che un altro record è stato creato / aggiornato / distrutto, quale modello di progettazione useresti? Controller Fat, callback ActiveRecord o qualcos'altro interamente?
Grazie.