在铁轨上使用部分红宝石

时间:2012-06-05 18:43:27

标签: ruby-on-rails ruby partial

我想通过application.html.erb管理根页面为标题栏插入部分_header.html.erb和部分_footer.html.erb 对于页脚栏和其他页面我想为侧栏输入另一个部分_sidebar.html.erb ...我该怎么办?补充工具栏不得出现在主页(root)中。 我必须在application.html.erb页面中为布局处理这个问题吗?

3 个答案:

答案 0 :(得分: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>

我有一个布局,使用部分标题,导航栏和侧边栏。

答案 1 :(得分: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 %>

我确信有更好的方法可以做到,但这对我有用。

答案 2 :(得分:0)

要避免在主页中放置侧栏,请发出:

render :layout => false
在控制器中

并将页眉和页脚部分添加到index.html.erb文件中。