2010-03-07 76 views
19

我想打電話給在Rails 403 HTTP錯誤的自定義實例,但我似乎無法弄清楚如何做到這一點...觸發在Rails HTTP錯誤

我有幾個用戶身份驗證角色,基本上如果一個角色試圖瀏覽到一個沒有被授權訪問的區域,我想顯示403而不是重定向用戶。

我該怎麼做?

+0

我認爲接受的答案應該改變 - 這是一個更好的解決方案,因爲它是正確的錯誤代碼以及更好的演示給最終用戶:http://stackoverflow.com/questions/9130191/how -to-return-correct-http-error-codes-from-ruby-on-rails-application –

回答

40

在控制器代碼添加以下行:

render :status => :forbidden, :text => "Forbidden fruit" 

參考this page用於HTTP代碼符號映射。

+1

太棒了!謝謝你......只是在錯過了逗號之後:禁止 –

+0

謝謝我已經更新了答案,並且添加了對http代碼的引用,以便使用ruby符號列表。 –

+0

謝謝!正要問這樣的問題 –

6

只是爲了後人:我認爲return 403.html是一個更好的解決方案,因爲它生成一個標準頁面,就像404一樣。上面的解決方案只顯示給出的文本。而且由於良好實踐的人只能通過在網頁應用程序外部鍵入或點擊鏈接進入禁止頁面,標準錯誤頁面纔是可行的。