2010-03-04 5 views
5

Je veux rendre plusieurs partiels dans un contrôleur, ceux-ci ne feront pas partie de la réponse, mais seront plutôt envoyés aux clients via Juggernaut. J'ai utilisé render_to_string. Lorsque le second est appelé, je reçois un DoubleRenderError. Comment rendre un rendu partiel de la manière dont performed? ne sera pas affecté?Rendu de plusieurs partiels dans un contrôleur

+1

Il se trouve 'render_to_string' efface off « rendre les résultats », de sorte que vous pouvez l'appeler plusieurs fois. Le problème était que j'appelais 'render_to_string' dans un hook' after_filter', après qu'un rendu ait déjà été appelé. – Leventix

Répondre

4

Il s'avère que render_to_string efface les "résultats de rendu", vous pouvez donc l'appeler plusieurs fois. Le problème était que j'ai appelé render_to_string dans un hook after_filter, après qu'un rendu ait déjà été appelé.

1

Attendez donc comment pouvez-vous faire cela dans un hook after_filter? cause im courir dans le même problème, et doit faire un crochet after_filter.

BTW, im dans une situation similaire en utilisant la technologie poussée, mais avec HTML 5 websockets et eventmachine

+0

Essayez de le placer juste avant l'appel de rendu principal dans l'action du contrôleur, plutôt que dans un after_filter. J'ai regardé dans le code source et l'appel render_to_string manipule la réponse, donc vous ne devriez pas l'appeler après un rendu même si vous manipulez la variable '@ performing_render'. – Leventix

+0

ya, ne peut pas vraiment faire ça. J'utilise InheritedResources donc after_filters est un peu comme je veux. – taelor

Questions connexes