Я пытаюсь настроить пользовательскую страницу ошибки на своем веб-сайте. Я следую инструкциям в блогу PerfectLine.
Это работает в случае, когда контроллер существует, но идентификатор не существует. Например, у меня есть контроллер блога, а идентификатор 4 не существует. Он показывает пользовательскую страницу ошибки
Но его нет в том случае, если не существует самого контроллера. Например, если я набираю какой-то случайный контроллер с числовым идентификатором, он не перехватывается методами, которые я настроил в контроллере приложения для перенаправления пользовательских страниц ошибок. В этом случае я получаю
ActionController::RoutingError (No route matches "/randomcontrollername"):
в терминале и страницу ошибки по умолчанию, которая поставляется с рельсами.
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
Не могли бы вы мне помочь. Спасибо.