我目前在index.htm.erb文件中有导航栏。它目前仅在主页上显示。 我想知道为了让导航栏出现在我的应用程序的每个页面上,必须采取哪些必要步骤?
导航栏的代码如下所示:
<header class="navbar navbar-inverse">
<div class="navbar-class">
<div class="container">
<!-- Collect the nav links, forms, and other content for toggling -->
<ul class="nav navbar-nav">
<li class="active"><a href="#">HOME</a></li>
<li><%=link_to "ABOUT", about_us_path%></li>
<li><%=link_to "OUR SERVICES", our_services_path %></li>
<li><%=link_to "RATES", rates_path %></li>
<li><%=link_to'CAREERS', careers_path%></li>
<li><a href="#">TRAINING</a></li>
<li><%= link_to"GALLERY", gallery_path %></li>
<li><%=link_to"MEDIA", media_path%></li>
<li><%=link_to"FAQS", faq_path %></li>
<li><a href="#">CONTACT</a></li>
</ul>
</div>
</div>
</header>
非常感谢任何输入。
由于
答案 0 :(得分:16)
如果你去app / views / layouts / application.html.erb,你会看到如下内容:
<!DOCTYPE html>
<html>
<head>
<title>SampleApp</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
这是展示应用的每个页面的模板。这是您要放置导航栏的位置。您可以直接剪切并粘贴到此文件,也可以将其渲染为部分文件。
要将其呈现为部分,请将导航栏代码保存在同一目录中,并根据需要为其命名,但请确保将其另存为&#34; .html.erb&#34;它以下划线开头。例如:&#34; _navbar.html.erb&#34;。
下划线让Rails知道它是部分的,&#34; .html.erb&#34;告诉Rails使用什么预处理器。
将其保存为&#34; app / views / layouts / _navbar.html.erb&#34;,将其呈现在&#34; application.html.erb&#34;:
中...
<body>
<%= render "layouts/navbar" %>
<%= yield %>
</body>
...
它应该出现在每一页上。
答案 1 :(得分:8)
您需要将其从index.html.erb
中移除并将其放入layouts/application.html.erb
然后,每个响应将首先使用应用程序布局,并根据控制器的请求yield
来自特定show / index视图的内容。
看起来应该是这样的:
<!DOCTYPE html>
<html>
<head>
<title>SspPrototype</title>
<%= stylesheet_link_tag 'application' %>
<%= javascript_include_tag 'application' %>
<%= csrf_meta_tags %>
</head>
<body>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<header class="navbar navbar-inverse">
<div class="navbar-class">
<div class="container">
<!-- Collect the nav links, forms, and other content for toggling -->
<ul class="nav navbar-nav">
<li class="active"><a href="#">HOME</a></li>
<li><%=link_to "ABOUT", about_us_path%></li>
<li><%=link_to "OUR SERVICES", our_services_path %></li>
<li><%=link_to "RATES", rates_path %></li>
<li><%=link_to'CAREERS', careers_path%></li>
<li><a href="#">TRAINING</a></li>
<li><%= link_to"GALLERY", gallery_path %></li>
<li><%=link_to"MEDIA", media_path%></li>
<li><%=link_to"FAQS", faq_path %></li>
<li><a href="#">CONTACT</a></li>
</ul>
</div>
</div>
</header>
<%= yield %>
</body>
</html>
以下是一些概述指南:
http://guides.rubyonrails.org/layouts_and_rendering.html#structuring-layouts http://railsapps.github.io/rails-default-application-layout.html
答案 2 :(得分:0)
在 app/views 中创建一个共享文件夹。在文件夹 (app/views/shared) 中,您创建了一个名为 _navbar.html.erb 的部分。 在部分中,复制导航栏的代码。
然后,您需要在 views/layouts/application.html.erb 中通过在 <%=yield%>: <%= render "shared/navbar" %>
您也可以使用 _footer.html.erb 来做到这一点(将它放在 <%= yield %>
下方)