在某些页面上隐藏导航栏和页脚

时间:2015-12-25 18:21:22

标签: ruby-on-rails twitter-bootstrap hide footer navbar

我正在为我的新公司建立一个网站,并希望为我的产品创建一个没有导航栏或页脚的登录页面。我希望简化目标网页,只关注产品。

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

我的主页和关于页面的导航栏和页脚,但我不希望我的产品登录页面有导航栏和页脚。

有关如何在导航页面上隐藏导航栏和页脚的任何建议,但请将其保留在其他页面上?

4 个答案:

答案 0 :(得分:11)

要添加到code.prio的答案,您可以在application布局中使用条件语句(省去了维护两个布局的麻烦):

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

不如其他答案那么漂亮,但效果更好。如果您有多个布局,则必须同时维护它们会很烦人。

答案 1 :(得分:7)

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

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

这将为您的网站加载具有不同视图的不同布局,而默认布局可以包含基本导航栏和其他页面的产品。

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

访问此链接以获取更多信息。 ActionView API Docs

答案 2 :(得分:5)

这很简单:

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

答案 3 :(得分:1)

我有同样的问题,我这样解决了:

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

使用action_name代替controller_name