如何在Rails应用程序的ruby中添加404错误页面?

时间:2018-12-20 12:46:10

标签: ruby-on-rails http-status-code-404

您能帮我吗?我想将404错误页面添加到我的网站。 我尝试了很多方法,但是对我没有用。 这是其中之一。

ApplicationController

unless  ActionController::Base.consider_all_requests_local
  rescue_from Exception, :with => :render_404
end

private

  def render_404
    render :template => 'error_pages/404', :layout => false, :status => :not_found
  end

然后设置error_pages / 404.html

任何人都可以解决此问题吗?

2 个答案:

答案 0 :(得分:4)

从控制器中解救404(通常源自ActiveRecord::RecordNotFound)并不总是有帮助,因为还会存在路由错误(ActionController::RoutingError

要向用户Rails展示异常,请调用config.exceptions_app,其默认值为ActionDispatch::PublicExceptions.new(Rails.public_path),仅呈现public/404.html等。

在大多数情况下,将错误页面放在此处就足够了,但是如果您绝对必须动态呈现某些内容,则可以覆盖例外应用程序。

一种常见的技巧是通过config.exceptions_app = self.routes将异常路由回您的主要路由,并添加常规路由来处理它们:

get '/404', to: 'errors#not_found'
get '/422', to: 'errors#unacceptable'
get '/500', to: 'errors#server_error'

但是请注意,如果已经有异常-您可能会得到一个异常循环,因此最好有单独的错误处理应用程序/引擎

答案 1 :(得分:0)

如果只需要自定义 static 错误页面,则可以在public / 404.html,public / 422.html和public / 500.html中更改HTML。