Want to define a section in my application_layout, but override it in a particular case, possible?
Say my application layout is like has:
<div id=container>
<div id=content>
<%= yield %>
</div>
</div id=sidebar>
<div id=top></div>
<div id=bottom></div>
</div>
- Now on the about page, I want to hide the s开发者_如何学Goidebar section, how could I do this?
- on the contact page, I want to override the contents of the sidebar.bottom part? is that possible?
In your application_controller.rb
before_filter :enable_sidebar
def enable_sidebar
@show_sidebar = true
end
In your about action:
def about
@show_sidebar = false
end
In your layout
<% if @show_sidebar %>
<div id="sidebar">
...
</div>
<% end %>
Use a similar approach for your contact page, or use a symbol value rather than a boolean to select different sidebar variations. The idea is the same: set a default, and then set some controller instance variables to alter depending on your needs on a per-action basis.
精彩评论