0

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?

4

3 回答 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 回答