如何在每个页面上实现元素 app/views/elements
How to implement Elements on every Page app/views/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 中 link 一个 css 文件?
非常感谢。
在app/views/layouts directory
的布局中设置。默认情况下,您使用 application.html.erb
.
在您的布局文件中包含此代码段 <%= render 'layouts/header' %>
将在每个站点上呈现名称为 header.html.erb 的局部视图。如果实现位于页面顶部的导航栏,您可能希望将其放在 yield
行(呈现当前视图模板)上方的某个位置。
样式:
不,在 Rails 中,您只需将它放在 application.css / application.scss
中,或者将您的文件与 css 样式包含在其中一个应用程序文件中。如果您是 Rails 生态系统的新手,请继续阅读 asset pipeline。
我最近在 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 中 link 一个 css 文件?
非常感谢。
在app/views/layouts directory
的布局中设置。默认情况下,您使用 application.html.erb
.
在您的布局文件中包含此代码段 <%= render 'layouts/header' %>
将在每个站点上呈现名称为 header.html.erb 的局部视图。如果实现位于页面顶部的导航栏,您可能希望将其放在 yield
行(呈现当前视图模板)上方的某个位置。
样式:
不,在 Rails 中,您只需将它放在 application.css / application.scss
中,或者将您的文件与 css 样式包含在其中一个应用程序文件中。如果您是 Rails 生态系统的新手,请继续阅读 asset pipeline。