2014-08-27 45 views
2

我目前在我的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> 

任何输入将不胜感激。

感谢

回答

7

你会想从index.html.erb删除它,然后把它放到layouts/application.html.erb

每一个响应,那么将首先使用应用程序布局,并从yield由控制器请求的特定节目/索引视图的内容。

它应该是这个样子:

<!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

13

如果你到应用程序/视图/布局/ 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> 

这是模板在您的应用程序的每一页被渲染。这是你想要放置你的导航栏的地方。您可以直接剪切并粘贴到该文件,也可以将其渲染为部分文件。

要将其渲染为部分,请将导航栏代码保存到同一目录中,然后将其命名为“喜欢”,但请确保将其保存为“.html.erb”,并以下划线开头。例如:“_navbar.html.erb”。

下划线让Rails知道它是一个部分,“.html.erb”告诉Rails使用什么样的预处理器。

将其保存为“应用程序/视图/布局/ _navbar.html.erb”后,你的“application.html.erb”内使其:

... 
<body> 
<%= render "layouts/navbar" %> 
<%= yield %> 

</body> 
... 

应该再出现在每一页上。

相关问题