如何在rescue_from中渲染500页

时间:2012-03-09 17:58:00

标签: ruby-on-rails

我想在我的应用程序中出现异常时发送电子邮件并呈现常规500页。我找不到如何执行500页渲染:

class ApplicationController < ActionController::Base
  rescue_from StandardError do
     send_email_of_error
     # what goes here? 
  end

  ...
end

3 个答案:

答案 0 :(得分:10)

再次提出异常可能是你想要的:

rescue_from StandardError do |exception|
  send_email_of_error
  raise exception
end

您也可以致电render来渲染您自己的网页,the docs有一个示例。

但为什么重新发明轮子? exception notifier gem已经执行此操作,可以自定义和测试。

答案 1 :(得分:2)

这种方法可能符合您的需求:

class ApplicationController < ActionController::Base
  rescue_from Exception, :with => :render_500

  def render_500(exception)
    @exception = exception
    render :template => "shared/500.html", :status => 500
  end
end

答案 2 :(得分:-1)

可能看看哨兵是有用的,是什么使系统中的一堆信息自动发出通知。

宝石 https://github.com/getsentry/raven-ruby

演示 https://github.com/getsentry/sentry-demo