rails出错的时候,一般都是跳转到错误跟踪的页面下,这样在开发环境下是很好的,但是对正式环境就不是太友好了,所以如果你想自定义一下出错的页面,还是有办法的.
我一般都会在lib目录下新建一个ooxx.rb文件存放下面的代码,然后在environment.rb下加载一下.
environment.rb
require File.join(File.dirname(__FILE__),'..', 'lib','ooxx')
ooxx.rb
module ActionController
module Rescue
protected
#自定义的错误处理
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
end
end
请注意做完以上操作后,在开发环境下,照样会跳转到错误跟踪页面的,这是因为这个方法是否起作用取决于development.rb和production.rb中的配置:
# in production.rb
config.action_controller.consider_all_requests_local = false
# in development.rb
config.action_controller.consider_all_requests_local = true
分享到:
相关推荐
通过自定义Rescue策略,开发者可以确保即使在出错的情况下,用户也能获得良好的用户体验。 5. **Routing** Routing是MonoRail中的路由系统,负责解析用户的URL请求并将其映射到相应的控制器和动作。相比于ASP.NET...
* 默认支持 Python/Ruby on Rails 语法加亮 * 改进语法加亮速度 (长行) *“未修改文档禁用保存按钮”选项 (“参数设置”-“文件”) * 在分隔命令中显示制表符和空格 * 在文件中查找允许以“;”号间隔的多文件夹名称 ...
* 默认支持 Python/Ruby on Rails 语法加亮 * 改进语法加亮速度 (长行) *“未修改文档禁用保存按钮”选项 (“参数设置”-“文件”) * 在分隔命令中显示制表符和空格 * 在文件中查找允许以“;”号间隔的多文件夹名称 ...
使用AJAX,可以在用户输入时实时验证数据,而无需刷新页面。这可以显著提升用户体验,因为错误信息能立即显示,用户可以及时更正。 4. **jQuery与插件**:jQuery库简化了JavaScript操作,同时也提供了许多表单验证...
在调试模式下,它会提供详细的错误信息,包括出错的模板行号和源代码。 **扩展性** Jinja 允许你自定义标签和过滤器,甚至可以创建自己的模板语言子集。这使得它能够适应特定项目的需求,例如集成额外的功能或优化...