I wanted to manage the root page through application.html.erb to insert a partial _header.html.erb for the header bar and a partial _footer.html.erb for the footer bar and in the other pages I would like to enter another partial _sidebar.html.erb for the sidebar...how can i do? Sidebar must not be present in the homepage (root). I have to handle this problem for layout in the application.html.erb page?
问问题
1369 次
3 回答
0
是的,您必须使用布局来处理这个问题。默认值为 application.html.erb。
这是您的问题的一个示例:
<!DOCTYPE html>
<html>
<%= render :partial => 'layouts/common_header' %>
<body>
<%= render :partial => 'layouts/top_menu' %>
<div id='container-fluid'>
<div id='sidebar'>
<%= render :partial => 'layouts/sidebar' %>
</div>
<div id='content'>
<%= yield %>
</div>
</div>
</body>
</html>
我有一个使用部分作为标题、导航栏和侧边栏的布局。
于 2012-06-05T18:48:57.597 回答
0
为此,我在 LayoutsHelper 中创建了一个辅助方法,如下所示:
def sidebar(state)
@sidebar = state
end
您可以在不希望侧边栏显示的页面上的视图中调用该方法<% sidebar false %>
然后在你的application.html.erb
, 你可以unless
用来显示侧边栏,除非 @sidebar 变量设置为 false:
<% unless @sidebar == false %>
<div class="sidebar">some stuff</div>
<% end %>
我确信有更好的方法可以做到这一点,但这对我有用。
于 2012-06-05T18:57:04.333 回答
0
为避免在您的主页中出现侧边栏,请发出:
render :layout => false
在控制器中并将页眉和页脚部分添加到您的index.html.erb
文件中。
于 2012-06-05T18:57:04.930 回答