大家都知道想在Rails下自定义错误显示的页面是修改 rescue_action_in_public 这个方法,我之前也写过一篇blog介绍在Rails 2.X下如何自定义错误信息页面
http://yangzhihuan.iteye.com/blog/577624
不过在 Rails 3中这个方法的位置改变了,上文提到的链接中的方法已经无效了,其它还是修改 rescue_action_in_public 这个方法,只不过这个方法不再放在 ActionController::Rescue 这个module里面了,请看代码:
#以下的代码放在 config/initializers 文件夹下,随便弄个文件名都可以,放在这个文件夹下,启动项目时会自动加载,这样就不用像放在 lib 文件夹中,还要手工去加载了。
module ActionDispatch
class ShowExceptions
private
# customize error handle
def rescue_action_in_public_with_handle_system_error(exception)
logger.error("rescue_action_in_public executed")
begin
# 修改这个文件的主要目的就是为了加上这么一句
SystemErrorNotify.system_error(exception).deliver
rescue => e
logger.error "****************************"
logger.error "#{e.message}"
logger.error "#{e.backtrace.join('\n')}"
logger.error "****************************"
end
# 调用原来的 rescue_action_in_public 方法,该干嘛干嘛去
rescue_action_in_public_without_handle_system_error(exception)
end
alias_method_chain :rescue_action_in_public,:handle_system_error
end
end
#注意 rescue_action_in_public 现在放在 ActionDispatch::ShowExceptions 中
# 我也不再直接覆盖 rescue_action_in_public 方法,而是使用了 alias_method_chain ,我觉得这样做扩展更加干净。
分享到:
相关推荐
Ruby on Rails 3 是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,极大地简化了Web开发过程。这个版本是在Ruby 1.9.2环境下发布的,带来了许多改进和新特性,旨在提高...
下载次数超过290,000,这是为Rails 5和6提供自定义400/500异常页面的“唯一”宝石,ExceptionHandler目前是CUSTOM Rails错误页面的最受欢迎的异常宝石。 拥有290,000多个下载量,这是为Rails 5和6提供自定义400/500...
ExceptionHandler用动态视图替换Rails的默认错误页面。 它通过向控制器注入实现此目的-允许我们使用自己HTML填充错误的响应。 要了解其工作原理,您需要了解Rails如何处理错误: Rails使用 (上面)来生成错误响应...
**问题描述:** 访问自定义页面时出现 `no such file load – sqlite3` 错误。 **解决方案:** Rails 默认使用 SQLite3 作为开发数据库。确保安装了 SQLite3: ```bash sudo apt-get install sqlite3 sudo gem ...
- 同时,它还提供了一些安全性的增强措施,如限制错误信息的显示等。 6. **日志记录** - 日志记录是调试和监控Rails应用程序的关键组件。 - Rails提供了丰富的日志记录功能,包括控制台输出、文件记录等。 - ...
Gaffe使在Rails应用程序中自定义错误页面变得容易。 它利用了Rails 3.2(显然是4.0+)中存在的一项功能,即exceptions_app 。 它带有默认错误页面,但是可以很容易地覆盖它们(您应该这样做)。 默认错误页面如下所...
- **编写态度**:作者在准备本书时采取了严谨的态度,但在使用本书包含的信息(包括程序列表)时,出版社不对任何错误、遗漏或可能由此产生的损害承担责任。 - **目标读者**:本书面向希望利用Rails框架进行高效软件...
您可以完全控制要显示特定异常的错误页面。 它还可以json呈现(对于API应用程序而言是完美的)。 它甚至提供了一种创建自定义例外应用程序的方法。 易于安装和开发 您不必配置每个人必须要做的事情,Rambulance可以...
在使用缓存时,需要注意数据一致性问题,避免缓存中的过时数据导致用户看到错误信息。此外,敏感数据应加密存储,防止缓存被窃取。 10. **实际应用示例** 例如,在处理商品列表时,可以对热门商品的列表进行缓存...
- **警告和提示(Alerts & Toasts)**:用于向用户显示信息、警告或错误消息,这些元素通常包含关闭按钮,以便用户可以轻松隐藏它们。 - **模态框(Modals)**:模态框是一种不离开当前页面就能展示额外信息或进行交互...
在这个场景中,讨论的重点可能是关于如何创建、自定义或优化Rails应用的用户登录系统。 描述中提到解压后得到的是一个`rails.exe`文件,这可能是一个已经编译好的Rails应用可执行文件,或者是一个Rails开发环境的...
1. **错误地选择了Rails作为解决方案**:在某些情况下,Rails可能不是最佳选择。例如,当面对大规模数据分析或高性能计算需求时,其他专门的技术或语言(如Python、R等)可能是更好的选择。 2. **内存管理不当**:...
RailsGuides是一个专门为Ruby on Rails框架提供官方指南和教程的平台,它涵盖了从基础到高级的各种主题,帮助开发者深入理解并有效地使用Rails进行Web开发。这个"RailsGuides blog示例网站"是基于这些官方指南创建的...
5. **视图展示**:在Rails视图中,通过控制器提供的方法将验证码图像渲染到页面上。例如,创建一个名为`captcha`的助手方法,返回验证码的图像标签。 6. **表单验证**:在用户提交表单时,检查输入的验证码是否与...
在Ruby on Rails框架中,文件上传是一个常见的需求,特别是在构建Web应用时,用户可能需要上传图片、文档等。Rails提供了一种优雅的方式来处理文件上传,包括存储管理、处理和验证。这篇博文“rails 文件上传”可能...
- 自定义控制器还可以包含异常处理逻辑,当业务逻辑中抛出异常时,可以捕获并返回合适的错误页面或JSON响应。 7. **拦截器和过滤器**: - 在某些框架中,可以使用拦截器或过滤器来在控制器方法调用前后执行额外的...
4. **错误处理**:内置或自定义错误处理中间件,确保在发生异常时优雅地处理错误。 5. **依赖注入**:借鉴Rails,可能会实现类似的服务定位器或依赖注入,方便管理应用程序的组件。 6. **数据库集成**:通常会与...