在「編輯」控制器方法上,如果未找到作爲參數傳遞的項目,並且使用:not_found狀態代碼,我想將用戶重定向到控制器索引操作。下面是代碼:測試狀態代碼assert_redirected_to
redirect_to dashboard_posts_url, :status => :not_found
的問題是,我無法使用assert_redirected_to軌道斷言測試這種行爲,因爲它需要的狀態代碼爲:重定向,如在源代碼:http://www.rubydoc.info/docs/rails/ActionDispatch/Assertions/ResponseAssertions:assert_redirected_to :(
你有任何解決方案,而無需重寫斷言?
「未找到」(404)是不重新定向的一個狀態碼。 (http://en.wikipedia.org/wiki/List_of_HTTP_status_codes#3xx_Redirection)也只能發送301,302,201,202的「位置」標頭。(http://en.wikipedia.org/wiki/HTTP_location )你想在這裏完成什麼? –
我想重定向用戶,同時通知重定向的原因(找不到項目)。最後我認爲這不是http頭的正確使用方式,所以我將繼續使用:重定向狀態碼。 –
或者,您可以使用閃光消息來通知用戶。或者您可以創建一個自定義錯誤頁面,通知用戶有關問題並提供其他鏈接或在幾秒鐘後自動重定向他。 –