2010-03-07 73 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一样。上面的解决方案只显示给出的文本。而且由于良好实践的人只能通过在网页应用程序外部键入或点击链接进入禁止页面,标准错误页面才是可行的。