D'accord, voici la question la plus délicate que j'ai jamais eu à poser sur StackOverflow.Rails - News Feed
Mon application Web permet de créer un document. Ce document est automatiquement sauvegardé laisse dire quelques secondes.
En attendant, je veux un fil de nouvelles pour que les utilisateurs sachent ce que font leurs amis. J'ai donc créé un modèle d'observateur que after_create crée un élément de type news_feed.
Problème est cet observateur car il va maintenant créer un news_feed sur jamais enregistrer, ce qui est un énorme firehose.
Donc je veux faire en sorte que le feed de news pour ce modèle ne soit injecté que par session ou toutes les X minutes. J'ai donc ajouté une colonne last_feeded_at au modèle.
Le problème est lorsque j'essaie de mettre à jour ce champ dans l'observateur pour marquer qu'il a été alimenté, ce qui déclenche l'observateur, ce qui fait un gâchis de tout.
Quelle est la meilleure façon de gérer cela? Je suis ouvert à toutes les suggestions intelligentes.
Merci
@ Steve, merci, mais où cela vivrait-il? Pouvez-vous donner un peu plus de contexte autour du cas d'utilisation? vraiment excité d'apprendre une façon plus intelligente de faire ce que j'essaie de faire. Mon code devient salissant! merci – AnApprentice
Eh bien, c'est votre application, mais je suppose que vous avez un contrôleur qui, d'après ce que vous décrivez, gère l'interaction de l'utilisateur autour de la création et la modification d'un document. Encore une fois, à partir de votre description, il semblerait que vous vouliez créer un fil de nouvelles lorsque le document est accédé pour la première fois dans une session donnée. Donc, je suppose que je dirais que le frapper dans un before_filter et affecter le résultat à une variable d'instance afin que votre vue peut l'afficher. Ou ... il est possible que vous ayez manqué votre intention pour cette fonctionnalité. –
Le contrôleur ne doit effectuer qu'une action sur un modèle, par ex. enregistrer une mise à jour pour Document. Le modèle Document devrait alors effectuer toutes les actions dépendantes qui existent. – Ariejan