2015-12-25 115 views
4

我正在为我的新公司构建网站,并且希望为我的产品创建一个没有导航栏或页脚的着陆页。我想让着陆页简单,只关注产品。隐藏某些页面上的导航栏和页脚

我在Ruby on Rails中编码。 Twitter Bootstrap就是我用来设计导航栏和页脚的样式。

我的主页和关于页面有一个导航栏和页脚,但我不希望我的产品着陆页有导航栏和页脚。

关于如何在我的着陆页上隐藏导航栏和页脚的任何建议,但请将其保存在我的其他页面上?

回答

7

是的,你可以做到。一种简单的方法是使用除默认application.html.erb以外的着陆页控制器的不同布局文件。在你想要的模板页面上写下一个自定义的布局名称,它将支持不同类型的规范。让我举一个例子,

class SiteController < ApplicationController 
    layout "landing_page" 
    ... 
end 

,只要你想为您的网站这将加载一个不同的布局与不同的看法,而默认的布局可以容纳其他页面的基本导航栏和产品。

谢谢。希望这种方式能解决你的问题。

请访问此链接了解更多信息。 ActionView API Docs

+0

一个完美的答案。 – sahil

+0

谢谢。完美工作。花了我大约30分钟来弄清楚如何将所有东西连接在一起。因为我对Web应用程序开发很陌生,所以对我来说有很好的学习体验。谢谢先生, –

8

为了增加code.prio的答案,你可以只使用一个条件语句在application布局(保存保持两个布局的麻烦):

#app/views/layouts/application.html.erb 
<% unless controller_name == "landing" %> 
    ... navbar ... 
<% end %> 

不一样漂亮对方的回答,但效果更好。如果你有不止一个布局,它会烦恼不得不维护它们。

+0

,这也是做这件事的好方法。 –

-1

我有同样的问题,我解决了它这种方式:使用action_name代替controller_name

#app/views/layouts/application.html.erb 
<% unless action_name == "landing" %> 
    ... navbar ... 
<% end %> 

3

这很简单:

# application.html.erb 
    <% unless action_name == "index" %> 
     # render the footer partial "_footer.html.erb" file from "shared" folder 
     <%= render 'shared/footer' %> 
    <% end %>