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
分享到:
相关推荐
在 Ruby on Rails 中,页面缓存是一种优化性能的技术,尤其适用于那些内容相对静态或者对用户个性化要求不高的网页。页面缓存的工作原理是将动态生成的 HTML 页面直接保存到服务器的文件系统中,后续的相同请求可以...
在`support`目录下,开发者可以放置一些辅助文件,例如World类(用于扩展Cucumber的上下文)、Hooks(用于在测试前后的自定义操作)和环境配置。这些支持文件增强了Cucumber-Rails的灵活性和可定制性。 结合Rails ...
在Ruby世界中,Rails框架是开发Web应用的热门选择,而`initrailsix`则是一个专为Rails 6设计的自定义初始化模板项目。Rails 6作为最新版本,引入了许多新特性和改进,使得开发者可以更高效、更灵活地构建应用程序。...
Ruby on Rails,通常简称为Rails,是一个基于Ruby编程语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式。这个“Rails项目源代码”是一个使用Rails构建的图片分享网站的完整源代码,它揭示了如何...
下载次数超过290,000,这是为Rails 5和6提供自定义400/500异常页面的“唯一”宝石,ExceptionHandler目前是CUSTOM Rails错误页面的最受欢迎的异常宝石。 拥有290,000多个下载量,这是为Rails 5和6提供自定义400/500...
### Rails 101 入门电子书知识点... - 自定义helper函数封装复杂逻辑。 通过以上内容的学习,初学者可以全面掌握Ruby on Rails的基础知识,包括环境搭建、基本操作、高级特性等,为后续更深入的学习打下坚实的基础。
4. **视图文件**:`app/views/rails_admin`目录下可能包含自定义的Rails Admin视图,用于展示邀请用户的相关表单和信息。 5. **路由配置**:在`config/routes.rb`中可能添加了与邀请相关的路由,使得用户可以通过...
自定义配置使Rails.configuration点易于用作中央配置存储,即使对于Rails中未包含的东西也是如此。 # config/environments/production.rbBCX :: Application . configure do config . x . resque . jobs_inline = ...
安装过程中,遵循提示进行,确保选择自定义安装并勾选Rails相关的插件,以便在Aptana中获得对Rails的全面支持。 安装完成后,打开Aptana Studio,创建一个新的Rails项目。在“File”菜单中选择“New”然后点击...
标签 "源码" 暗示了可能涉及Rails的源代码分析或自定义扩展。Rails是开源的,开发者可以深入研究其内部机制,理解工作原理,甚至为框架贡献代码。 标签 "工具" 可能意味着讨论到了与Rails开发相关的工具,如集成...
在Ruby开发中,ActiveModel是Rails框架的一部分,它提供了一种模型层的接口,使得非ActiveRecord对象也能具有类似于ActiveRecord的行为。这个标题提到的"Ruby-ActiveModel的自定义验证用于检查数组是否包含在另一个...
此外,`rails generate scaffold`命令也变得更加灵活,可以自定义模板。 4. Rails 4.0: Rails 4带来了大量的改变和优化。最显著的是加入了Strong Parameters,提高了安全性,避免了Mass Assignment漏洞。另外,它...
此外,Rails还内置了许多实用功能,如ActiveRecord(用于数据库交互)、Action View(用于页面渲染)和Action Controller(用于处理用户请求),这些都使得开发者能够快速构建出功能丰富的Web应用程序。 #### 2. ...
在Rails中,Ruby的元编程能力使得框架能够灵活地自定义和扩展。 Rails的核心理念是DRY(Don't Repeat Yourself),鼓励代码重用,避免重复编写相似的代码。此外,它还提供了大量的内置功能和库,如ActiveRecord用于...
- **Asset Pipeline**:Rails 3.1引入了Asset Pipeline,将CSS、JavaScript、图片等静态资源管理整合到一个统一的流程中,提高了页面加载速度。 - **CoffeeScript**:默认使用CoffeeScript作为JavaScript的预...
Rails 2.1.0引入了许多新特性,例如活动记录(ActiveRecord)的自动保存关联、部分渲染以及自定义验证选项等。 7. **activerecord-2.1.0.gem**:ActiveRecord是Rails中的ORM(对象关系映射)库,负责将数据库表映射...
在Rails项目的根目录下执行`rails server`命令,或者简写形式的`rails s`。默认情况下,Mongrel服务器会在本地的3000端口监听,你可以通过浏览器访问`http://localhost:3000`来查看Rails的主界面。 **知识点6:测试...
5. **Gemfile与Bundler**:Rails项目通常使用Gemfile来管理依赖库,Bundler工具则用于安装和管理这些依赖,确保在不同环境下项目的运行一致性。 6. **Scaffolding**:Rails提供了快速生成基本CRUD(Create, Read, ...
Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...