很早之前我自定义错误页面都是重写Showexceptions的rescue_action_in_public和rescue_action_locally方法,但是这样做侵入性太强,今天偶尔看到了一个方法:rescue_from的方法,使用方法如下;
rescue_from(*klasses, &block)
它的第一个参数是出错的类型集合,可以指定多个错误类型或者出错信息,每一项都会调用klass.is_a?(klass);第二个参数是可以带一个block,我们可以使用with来指定:
出错处理是可以继承的,比如底下代码中,如果没有指定错误处理类型的话,就会调同rescue_from 'MyAppError::Base'的出错处理;
class ApplicationController < ActionController::Base
rescue_from ActiveRecord::InvalidForeignKey,ActiveRecord::StatementInvalid , :with => :show_fk_errors
rescue_from 'MyAppError::Base' do |exception|
render :xml => exception, :status => 500
end
protected
def show_fk_errors(exception)
render :template => "/errors/fk_error.html.erb",:object=>@exception = exception
end
end
PS:
在ruby文件中如果有中文出错的话可以在文件开头添加
#encoding: utf-8
。。。。。。
来指定文件编码,如果还出错的话请人工转码吧。。。
分享到:
相关推荐
10. **错误处理与日志**:设置合适的错误处理机制,如使用`rescue_from`来捕获异常。合理使用Rails的日志功能,监控应用状态,便于问题排查。 11. **性能监控**:使用New Relic、Prometheus或自定义的性能指标监控...
可以通过rescue_from或自定义异常类来捕获和处理错误。 七、安全与认证: API的安全性至关重要。常见的安全策略包括OAuth2、JWT(JSON Web Tokens)或API密钥。Rails提供如devise_token_auth这样的库来协助实现这些...
可以自定义错误类,使用`rescue_from`处理异常,并返回适当的HTTP状态码和错误消息。 10. **Authentication与Authorization** JSON Web Tokens (JWT) 或 Devise 是常见的认证解决方案。JWT允许无状态认证,而...
- **异常处理**:Rails 2.0引入了`rescue_from`机制,允许开发者更优雅地处理异常,并可以针对不同的异常类型采取不同的处理策略。 ##### 3.7 HTTP认证 - **HTTP认证**:为保护敏感API端点,Rails 2.0提供了HTTP...
另外,错误处理变得更统一,`rescue_from`可以捕获并处理多种异常,使代码更整洁。 三、ActionView:视图层改进 ActionView负责渲染视图模板。Rails 5支持ERB、Haml等多种模板语言,并引入了`capture_helper`,使得...
6. **错误处理与测试**:良好的错误处理机制是API稳定性的保障,通常会使用Rails的`rescue_from`或自定义异常类。同时,单元测试和集成测试(如RSpec和Capybara)确保代码质量与功能的正确性。 7. **版本控制**:...
### 3. 邮件解析 Mail库同样擅长解析接收到的邮件。它可以读取`.eml`文件或直接从邮件服务器获取邮件,然后分解其结构。通过解析邮件,可以访问所有头部字段和正文内容,甚至可以处理嵌套的MIME部分。 ```ruby ...
在Ruby中,可以自定义异常类并使用`rescue_from`来捕获和处理错误,或者在控制器中直接设置状态码和响应体。 5. **版本控制**: 为了保持向后兼容性,API通常需要版本化。可以使用路径参数(如`/v1/users`)或HTTP...
可以自定义异常类来抛出自定义错误。 ```ruby class MyError end ``` **9.3 catch和throw** `catch`和`throw`用于实现简单的异常传递机制。 ```ruby catch :my_label do throw :my_label, "Caught an ...