如何在特定页面上隐藏页脚布局?

时间:2011-02-27 02:36:40

标签: ruby-on-rails

在我的视图页面上,我想要隐藏在我的application.html.erb中定义的页脚部分,我该怎么做?

我有什么选择呢?

3 个答案:

答案 0 :(得分:19)

最简单/最快捷的方法可能是定义条件:

<%= render "layouts/footer" unless @skip_footer %>

然后在您的操作中根据需要设置变量:

def non_footer_action
  do_stuff
  @skip_footer = true
end

答案 1 :(得分:1)

对我来说,CSS解决方案最接近传统解决方案:

app/controllers/resources_controller.rb

class ResourcesController < ApplicationController
  def action
    # ...
  end
end

app/views/layouts/application.html.erb

<body class="<%= "#{controller_path} #{action_name}" %>">
  <!-- ... -->
  <footer></footer>
</body>

app/assets/stylesheets/resources.css.scss

body.resources {

  // Hide footer for certain views

  &.action footer {
    display: none;
  }
}

您可能还想为“footerless”操作使用单独的布局,尽管一个元素不足以成为另一个布局的原因。

答案 2 :(得分:1)

如果页面是“show.html.erb”,您可以执行以下操作:

<% unless action_name == "show" %>
   <%= render 'shared/footer' %>
<% end %>