我正在尝试在我的网站中设置自定义错误页面。我遵循PerfectLine博客中的指导方针。
当控制器存在但id不存在时,它可以正常工作。例如,我有一个博客控制器,但id为4不存在。它会显示自定义错误页面。
但如果控制器本身不存在,则无法使用该方法进行捕获。例如,如果我键入一些随机控制器和数字id,则无法通过我在应用程序控制器中设置的方法重新路由自定义错误页面。在这种情况下,终端会显示
ActionController::RoutingError (No route matches "/randomcontrollername"):
并显示rails默认的错误页面。
application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
unless Rails.application.config.consider_all_requests_local
rescue_from Exception, :with => :render_error
rescue_from ActiveRecord::RecordNotFound, :with => :render_not_found
rescue_from ActionController::RoutingError, :with => :render_not_found
rescue_from ActionController::UnknownController, :with => :render_not_found
rescue_from ActionController::UnknownAction, :with => :render_not_found
end
private
def render_not_found(exception)
render :template => "/error/404.html.erb", :status => 404
end
def render_error(exception)
render :template => "/error/500.html.erb", :status => 500
end
end
请你能帮我吗?谢谢。