相关疑难解决方法(0)

自定义错误页面 - Ruby on Rails

我正在尝试在我的网站中设置自定义错误页面.我遵循PerfectLine Blog的指导原则.

它适用于控制器存在的情况,但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
Run Code Online (Sandbox Code Playgroud)

请你帮助我好吗.谢谢.

ruby ruby-on-rails custom-error-pages ruby-on-rails-3

10
推荐指数
1
解决办法
6672
查看次数