2010-06-09 11 views
6

Possiedo un'applicazione Ruby on Rails (2.3.5) e un server APE (Ajax Push Engine). Quando i record vengono creati all'interno dell'applicazione Rails, ho bisogno di inviare il nuovo record sui canali applicabili al server APE. I record possono essere creati nell'app per rails tramite il percorso tradizionale attraverso l'azione di creazione del controller, oppure possono essere creati da diverse macchine eventi che monitorano costantemente vari inputstream e creano record quando vedono i dati che soddisfano determinati criteri.Design pattern per integrare Rails con un server Comet

Mi sembra che il posto migliore/giusto per mettere il codice che spinge i dati verso il server APE (che a sua volta lo spinge verso i client) è nel hook after_create del modello (poiché non tutte le creazioni di record scorrerà attraverso l'azione di creazione del controller).

L'avvertenza finale è che voglio inviare un pezzo di HTML formattato sul server APE (piuttosto che una rappresentazione JSON dei dati). Il motivo per cui voglio farlo è 1) Ho già una logica per produrre il layout desiderato nei partial esistenti 2) Non voglio creare un'implementazione javascript dei partial (javascript che prende un oggetto JSON e crea tutto l'HTML intorno per presentazione). Questo diventerebbe rapidamente un incubo di manutenzione. Il problema con questo è che richiederebbe il rendering di parziali all'interno del modello (il che ha comunque problemi a causa del fatto che non sembrano avere accesso agli helper quando sono sottoposti a rendering in questo modo).

In ogni caso - Basta chiedersi qual è il modo giusto per organizzare tutto questo.

Grazie

risposta

8

Dopo aver parlato w alcune persone in #rails e #ape questo è sembra essere l'approccio migliore per questo problema.

alt text