Rails中特定于操作的异常处理程序HTML

时间:2009-06-04 23:02:03

标签: ruby-on-rails exception-handling error-handling

我在控制器中有一堆XHR操作,它返回一些HTML插入到页面中。如果响应是错误,则它将输出放入特殊的错误div。到目前为止,没什么特别有趣的。

但是,这个一般过程不适用于Rails的异常处理。如果我在我的XHR操作中引发异常,我会在我的错误div中获得通用的500错误处理程序输出,这看起来有点可怕。虽然我可以在我的操作中捕获所有可能的异常并呈现更合适的错误,但是我丢失了标准的异常日志记录和通知,这很糟糕。

因此,我能想到的唯一解决方案是能够为这些特定操作指定一个不同的500处理程序HTML片段,但我找不到多少。有人有任何想法吗?

1 个答案:

答案 0 :(得分:2)

您应该能够在javascript处理程序中检查500状态代码并显示“服务器问题”之类的通用消息。如果存在更具体的错误消息对生产环境中的最终用户有用的情况,则必须使用rescue_from子句捕获这些异常。如果您确实想要阻止显示500页,可以覆盖XHR控制器上的rescue_action_in_public方法。