2010-12-07 8 views
0

dire que ma mise en page de l'application est comme a:Vous voulez définir une section dans mon application_layout, mais la remplacer dans un cas particulier, possible?

<div id=container> 

<div id=content> 
<%= yield %> 
</div> 
</div id=sidebar> 
    <div id=top></div> 
    <div id=bottom></div> 
</div> 
  1. maintenant sur la page A propos, je veux cacher la section de la barre latérale, comment pourrais-je faire cela?
  2. sur la page de contact, je veux substituer le contenu de la partie sidebar.bottom? est-ce possible?

Répondre

1

Dans votre application_controller.rb

before_filter :enable_sidebar 
def enable_sidebar 
    @show_sidebar = true 
end 

Dans votre propos de l'action:

def about 
    @show_sidebar = false 
end 

Dans votre mise en page

<% if @show_sidebar %> 
    <div id="sidebar"> 
    ... 
    </div> 
<% end %> 

Utilisez une approche similaire pour votre page de contact, ou utiliser une valeur de symbole plutôt qu'un booléen pour sélectionner une autre barre latérale tions. L'idée est la même: définissez une valeur par défaut, puis définissez certaines variables d'instance de contrôleur à modifier en fonction de vos besoins par action.

+0

Existe-t-il un moyen de le faire en utilisant content_for? – Blankman

Questions connexes