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

Rails在不同的环境下,对错误的处理是不一样的,在开发和测试环境中提供开发级别的错误,在生产环境中提供Application Error的错误。
1、设置全局的异常处理程序,在application.rb中增加:
[code] 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
[/code]
2、Controller级别的异常处理,可以在你自己的Controller里面增加:
[code]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
[/code]
3、注意在不同环境中的配置,生产环境中,默认的配置应该就可以显示效果,但在开发模式下,需要确认/config/environments/development.rb中的
[code]config.action_controller.consider_all_requests_local = false[/code]
如果在本机访问必须增加:
[code] def local_request?
false
end
[/code] 才能显示错误页面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值