2010-04-05 9 views
1

Hy,mise en page Rails: cache 2 cols et content_for

j'ai une disposition qui a 2 Col. et chaque point de vue j'ai: content_for: main_col et content_for: side_col

dans certaines parties du site, le side_col est toujours le même et comment est-ce que je fais ça étant DRY? rendu partiel? Je ne pense pas que c'est bon.

il vient en cache .. le content_for est pas bon de cache ...

vous avez de meilleures ideias sur la façon de mettre en œuvre ce? Merci

+0

Avez-vous une raison particulière de penser ces choses? sont "pas bon?" –

+0

parce que je reapeat le code encore et encore .. j'ai 5 vues avec le même code de side_col ... –

+0

Si vous répétez exactement le même code vous pouvez le transformer en un partiel et le rendre, il n'y a rien de mal à partiels. Bien qu'une vue puisse devenir lente si vous avez beaucoup de partiels. – Bitterzoet

Répondre

1

votre question est un peu vague, mais de ce que Je comprends, si vous ne voulez pas faire un partiel, alors vous pouvez simplement mettre le balisage pour side_col directement dans la mise en page de l'application au lieu d'avoir le rendement nommé. Assurez-vous ensuite que toutes les variables dont vous avez besoin dans cette vue sont définies dans ApplicationController. Si certaines vues ne requièrent pas le paramètre side_col, vous pouvez définir une variable d'instance, par exemple, @include_side_col = true dans votre contrôleur d'application, puis placer le paramètre side_col dans une instruction if qui vérifie cette variable. Dans vos sous-contrôleurs, vous pouvez alors définir @include_side_col sur false dans un before_filter. C'est une façon de le faire, mais je dois dire que je préférerais la méthode partielle car il s'agit plutôt d'une convention de rails, et cela vous évite d'encombrer votre mise en page.

Questions connexes