Dans le tutoriel précédent : Mise en place du counterCache : un piège à éviter, nous avions vu comment mettre en place le counterCache entre deux modèles associés en belongsTo et comment mettre à jour le compteur d’origine, lorsqu’un enregistrement change de parent.
L’astuce consistait à placer notre logique dans les callbacks beforeSave et afterSave du modèle Post, dans lequel est déclarée l’association belongsTo avec le modèle Category. Tout cela fonctionne bien pour un seul modèle, mais si l’application a plusieurs counterCache actifs, il faut dupliquer l’astuce dans tous les modèles, ce qui est peu productif et ne permet pas de réutiliser l’astuce dans d’autres projets.
Nous allons donc créer un Behavior, nommé tout simplement Counter, pour exécuter automatiquement la mise à jour du counterCache lorsque des enregistrements change de parent. Lire la suite