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

8
我正在为我的新公司建设一个网站,希望为我的产品创建一个着陆页,该页面没有导航栏或页脚。我希望保持着陆页简单,只关注产品。
我正在使用Ruby on Rails进行编码。 Twitter Bootstrap是我用来样式化导航栏和页脚的工具。
我的主页和关于页面有导航栏和页脚,但我不希望我的产品着陆页有导航栏和页脚。
你有什么建议可以在我的着陆页上隐藏导航栏和页脚,但在其他页面上保留它们?
4个回答

12

补充code.prio的回答,您可以在application布局中使用条件语句(避免了维护两个布局的麻烦):

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

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

这个答案可能不如另一个答案好看,但是更加实用。如果你有多个布局,那么维护它们会变得很麻烦。


7

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

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

这将加载不同的布局和视图,以满足您网站的需求,而默认布局可以为其他页面提供基本的导航栏和产品。

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

访问此链接获取更多信息。 ActionView API文档


谢谢。完美地工作了。花了我大约30分钟来弄清楚如何将所有东西连接在一起。对我来说是一个很好的学习经验,因为我对Web应用程序开发还比较新。 - Seth Allen

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

2

我曾经也遇到过同样的问题,我是这样解决的:

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

使用action_name代替controller_name


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接