如何在每个页面应用/视图/元素上实现元素

时间:2015-07-26 22:40:33

标签: ruby-on-rails elements

我最近在一个项目中看到,在app / views / elements下使用rails文件_navbar.html.erb,其中包含导航栏的html代码。它出现在每个页面上,而不必在它出现的页面上调用它。

这是文件中的代码:

<nav class="navbar navbar-default" role="navigation">
  <!-- Brand and toggle get grouped for better mobile display -->
  <div class="navbar-header">
    <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-collapse-1">
      <span class="sr-only">Toggle navigation</span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
      <span class="icon-bar"></span>
    </button>
    <%= link_to "Pandora", defined?(root_path) ? root_path : "#", class: "navbar-brand" %>
  </div>

  <!-- Collect the nav links, forms, and other content for toggling -->
  <div class="collapse navbar-collapse" id="navbar-collapse-1">
    <ul class="nav navbar-nav">
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <% if defined?(Devise) %>
        <% if user_signed_in? %>
          <li class="dropdown">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Account <b class="caret"></b></a>
            <ul class="dropdown-menu">
              <li><%= link_to "Edit Account", edit_user_registration_path %></li>
              <li class="divider"></li>
              <li><%= link_to "Sign Out", destroy_user_session_path, method: :delete %></li>
            </ul>
          </li>
        <% else %>
          <li><%= link_to "Login", new_user_session_path %></li>
          <li><%= link_to "Sign Up", new_user_registration_path %></li>
        <% end %>
      <% end %>
    </ul>
  </div><!-- /.navbar-collapse -->
</nav>

我的问题是它在何处设置,以便在每个页面上显示导航栏。我还想知道我是否要设置样式,我只需要在_navbar.html.erb中链接一个css文件吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

app/views/layouts directory的布局中进行设置。默认情况下,您使用的是application.html.erb

在您的布局文件<%= render 'layouts/header' %>中包含此代码段将在每个网站上呈现名称为header.html.erb的部分视图。如果实现位于页面顶部的导航栏,您可能希望将其放在yield行(呈现当前视图模板)之上的某个位置。

<强>样式:

不,在Rails中,您只需将其放在application.css / application.scss中,或者在其中一个应用程序文件中包含带有css样式的文件。如果您不熟悉Rails生态系统,请继续阅读asset pipeline