浏览 2495 次
|
锁定老贴子 主题:如何在你的应用中管理错误的页面
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
时间:2006-11-14 关键字: rails exception
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
才能显示错误页面
声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-04-05
|
|
| 返回顶楼 | |




