使用respond_to在rescue_from中呈现异常警报

时间:2017-02-22 15:22:36

标签: ruby-on-rails exception rescue

我正在拯救未经授权的例外,并希望在此救援区内发布警报。由于这是在我的应用程序控制器中,这种救援可以以多种格式命中,因此我需要一个respond_to块。

如果我在没有respond_to的情况下这样做,一切正常。状态设置为401,我看到正确的异常消息闪烁。

render :json => exception.message, :status => 401

但是,如果我在repond_to块中执行相同操作,则无效。状态未设置,异常消息无法呈现。

respond_to do |format|
  format.json { render :json => exception.message, :status => 401 }
end

这可能是什么问题?我已经查看了大量的例子,这似乎应该可行,但状态和信息似乎被忽略了。

1 个答案:

答案 0 :(得分:0)

此外,您正在使用

呈现json
render :json => exception.message, :status => 401

您正在回复HTML请求...所以如果您需要在浏览器上呈现它,您需要自己处理所有格式...

respond_to do |format|
  format.json { ... }
  format.html { ... }
end