论坛首页 编程语言技术论坛

如何在你的应用中管理错误的页面

浏览 4914 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-11-14  
Rails在不同的环境下,对错误的处理是不一样的,在开发和测试环境中提供开发级别的错误,在生产环境中提供Application Error的错误。
1、设置全局的异常处理程序,在application.rb中增加:
  def rescue_action_in_public(exception)
    logger.error("rescue_action_in_public executed")
    case exception
    when ActiveRecord::RecordNotFound, ::ActionController::RoutingError,  
      ::ActionController::UnknownAction
      logger.error("404 displayed")
      render(:file	=> "#{RAILS_ROOT}/public/404.html",
      :status	=> "404 Not Found")
    else
      logger.error("500 displayed")
      render(:file	=> "#{RAILS_ROOT}/public/500.html",
      :status	=> "500 Error")
#      SystemNotifier.deliver_exception_notification(self, request,  
#                                                    exception)
    end
  end

2、Controller级别的异常处理,可以在你自己的Controller里面增加:
def rescue_action_in_public(exception)
    render :text => "<html><body>
<p>There was a controller specfic error processing your request.</p>
<!--  #{exception}  --></body></html>" 
  end

3、注意在不同环境中的配置,生产环境中,默认的配置应该就可以显示效果,但在开发模式下,需要确认/config/environments/development.rb中的
config.action_controller.consider_all_requests_local = false

如果在本机访问必须增加:
  def local_request?
    false
  end
才能显示错误页面
   发表时间:2007-04-05  
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics