呈現rescue_from中的異常警報我正在搶救未經授權的異常,並且希望在此救援塊中呈現警報。由於這是在我的應用程序控制器中,這種救援可能會以多種格式命中,所以我需要一個respond_to
塊。使用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
這裏有什麼問題?我已經瀏覽了大量的例子,這似乎應該起作用,但狀態和消息似乎被忽略。
在第一個變體中,儘管它們的格式是什麼,但是您可以響應所有對控制器操作的請求。第二個變體定義僅針對json格式請求的響應,例如, '/示例/ new.json'。如果你像這個'/ example/new'那樣向你的動作發出請求,它將回退到你沒有定義任何狀態和消息的html格式。看到這個問題和答案的更多細節:http://stackoverflow.com/questions/9492362/rails-how-does-the-respond-to-block-work –