Как реализовать элементы на каждой странице приложения / представления / элементы

Недавно я видел в проекте, который использует rails в app / views / elements файл _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>

У меня вопрос, где он настроен так, чтобы он отображал панель навигации на каждой странице. Я также хотел бы знать, если бы я должен был стилизовать его, мне просто нужно связать файл CSS в _navbar.html.erb?

Большое спасибо.

1 ответ

Решение

Это настроено в макете в app/views/layouts directory, По умолчанию вы используете application.html.erb,

Включение этого фрагмента в файл макета <%= render 'layouts/header' %> будет отображать частичное представление с именем header.html.erb на каждом сайте. Если вы используете панель навигации, расположенную в верхней части страницы, вы, вероятно, захотите поместить ее где-то выше yield строка (которая отображает текущий шаблон представления).

Стайлинг:

Нет, в Rails вам просто нужно будет поместить его либо в application.css / application.scss или включите ваш файл со стилями CSS в один из этих файлов приложения. Если вы новичок в экосистеме Rails, тогда читайте о конвейере активов.

Другие вопросы по тегам