如何显示404错误页面而不是路由错误?

时间:2011-09-13 10:49:57

标签: ruby-on-rails routing

在我的Ruby on Rails应用程序中,当给定路径与我的应用程序不匹配或存在时,我想显示404错误页面而不是路由错误。任何人都可以帮助我实现这个目标吗?

5 个答案:

答案 0 :(得分:13)

这已经是生产中的默认行为。在开发环境中,会显示路由错误,让开发人员注意并修复它们。

如果您想尝试,请在生产模式下启动服务器并进行检查。

$ script/rails s -e production

答案 1 :(得分:9)

ApplicationController

中的

 rescue_from ActiveRecord::RecordNotFound, :with => :rescue404
 rescue_from ActionController::RoutingError, :with => :rescue404

  def rescue404
    #your custom method for errors, you can render anything you want there
  end

答案 2 :(得分:7)

如果您无法在本地轻松运行生产模式,请在consider_all_requests_local文件中将config/environments/development.rb设置为false。

答案 3 :(得分:0)

您可以捕获未找到路由时引发的异常,然后呈现自定义页面。如果您需要有关代码的帮助,请告诉我们。可能有很多其他方法可以做到这一点,但这肯定有效。

答案 4 :(得分:0)

此返回404页

在ApplicationController中

class ApplicationController < ActionController::Base

      rescue_from ActiveRecord::RecordNotFound,    with: :route_not_found
      rescue_from ActionController::RoutingError,  with: :route_not_found
      rescue_from ActionController::UnknownFormat, with: :route_not_found


    def route_not_found
        render file: Rails.public_path.join('404.html'), status: :not_found, layout: false
      end