【问题标题】:rails add css class if the page has a 404 status如果页面具有 404 状态,rails 添加 css 类
【发布时间】:2014-02-01 22:46:17
【问题描述】:

如果当前页面呈现 404 错误,Rails 中是否有办法将类添加到 html 标签中。

在我的控制器上,如果用户访问了错误的网站,它会在公共错误中呈现一个文件,并出现类似这样的 404 错误

else
  render file: 'public/error', status: 404, formats: [:html]
end

我想在页脚hidden 中添加一个类,以便在呈现此页面时隐藏页脚。我试过这个没有运气(但这更像是一个猜测)

<%= "hidden" if current_page?(status: 404) %>

有什么建议吗??

【问题讨论】:

  • 你有400,而不是404。如果你改变它,你的代码能工作吗?
  • 哈哈好眼力,但还是没有运气。我想出了一个解决办法。我刚刚在该文件上制作了一个样式表,并从样式表中隐藏了页脚。 :) 感谢您查看它!不过,我仍然对答案感到好奇,所以我会留下它,以防有人知道我所做的附带技巧以外的答案
  • 在 Rails 3 中,你可以做 &lt;%= "hidden" if controller.status == 404 %&gt; 但我懒得在 4 中测试,所以我写的是评论,而不是答案:)
  • 哈哈谢谢我喜欢它@mechanicalfish。话虽如此,它不起作用:) 无论如何感谢您查看它

标签: ruby-on-rails ruby ruby-on-rails-4


【解决方案1】:

你可以为你的错误文件渲染一个单独的布局

else
    render :template => "shared/404", :layout => 'errorlayout', :status => 404
end

您可能还想看看这些问题和答案:

Dynamic error pages in Rails 3

how to remove header and footer from some of the pages in ruby on rails

How to hide footer layout on a particular page? - 这基本上是 Ismael Abreu 的建议,可能是最简单的。

【讨论】:

    【解决方案2】:

    您可以使其更通用并设置@variable 来告诉页脚隐藏。因此,如果以后您想要一个没有页脚的 500 页,您可以使用相同的技巧。

    控制器

    else
      @hide_footer = true
      render file: 'public/error', status: 404, formats: [:html]
    end
    

    查看

    <%= "hidden" if @hide_footer %>
    

    而且您不需要更改任何其他内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 2011-11-22
      • 1970-01-01
      • 1970-01-01
      • 2019-03-10
      • 1970-01-01
      • 2015-12-06
      相关资源
      最近更新 更多