2010-06-09 5 views
6

J'ai une application Ruby on Rails (2.3.5) et un serveur APE (Ajax Push Engine). Lorsque des enregistrements sont créés dans l'application Rails, je dois transférer le nouvel enregistrement sur les canaux applicables vers le serveur APE. Les enregistrements peuvent être créés dans l'application rails par le chemin traditionnel via l'action create du contrôleur, ou peuvent être créés par plusieurs machines événementielles qui surveillent constamment divers flux d'entrée et créent des enregistrements lorsqu'ils voient des données répondant à certains critères.Modèle de conception pour intégrer Rails avec un serveur Comet

Il me semble que le meilleur/juste endroit pour mettre le code qui pousse les données sur le serveur APE (qui le pousse à son tour aux clients) est dans le crochet after_create du modèle (puisque pas toutes les créations d'enregistrement circulera à travers l'action de création du contrôleur). Le dernier avertissement est que je veux pousser un morceau de HTML formaté sur le serveur APE (plutôt que d'une représentation JSON des données). La raison pour laquelle je veux faire ceci est 1) J'ai déjà la logique pour produire la disposition désirée dans les partiels existants 2) Je ne veux pas créer une implémentation javascript des partiels (javascript qui prend un objet JSON et crée tout le HTML autour pour la présentation). Cela deviendrait rapidement un cauchemar d'entretien. Le problème avec ceci est qu'il faudrait "rendre" les partiels à l'intérieur du Modèle (ce qui me pose un problème parce qu'ils ne semblent pas avoir accès aux Helpers quand ils sont rendus de cette manière).

Quoi qu'il en soit - Je me demande simplement quelle est la bonne façon d'organiser tout cela.

Merci

Répondre

8

Après avoir parlé avec certaines personnes dans #rails et ce #ape est semble être la meilleure approche de cette question.

alt text

Questions connexes