2006-11-14
如何在你的应用中管理错误的页面
关键字: rails exception
Rails在不同的环境下,对错误的处理是不一样的,在开发和测试环境中提供开发级别的错误,在生产环境中提供Application Error的错误。
1、设置全局的异常处理程序,在application.rb中增加:
2、Controller级别的异常处理,可以在你自己的Controller里面增加:
3、注意在不同环境中的配置,生产环境中,默认的配置应该就可以显示效果,但在开发模式下,需要确认/config/environments/development.rb中的
如果在本机访问必须增加:
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
才能显示错误页面
- 浏览: 51329 次
- 来自: 大连

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
Velocity用户手册---中文 ...
现在用velocity的少了把,不过类似的模板可是越来越多了
-- by airport -
Velocity用户手册---中文 ...
雪中送炭,收了,谢了!!!
-- by chamborghini -
Velocity用户手册---中文 ...
GOOD!
-- by iRoyce -
Velocity用户手册---中文 ...
谢谢!!非常好!!
-- by wxl4040 -
整合File-Column和Rmagic ...
我可以用rmagick和file_column.但是当我点edit编辑先前存在的 ...
-- by mrunix






评论排行榜