在 Rails 中触发 HTTP 错误
Posted
技术标签:
【中文标题】在 Rails 中触发 HTTP 错误【英文标题】:Trigger a HTTP error in Rails 【发布时间】:2011-01-24 14:25:27 【问题描述】:我正在尝试在 Rails 中调用 403 HTTP 错误的自定义实例,但我似乎无法弄清楚如何执行此操作...
我有几个用户身份验证角色,基本上,如果一个角色试图浏览到它无权访问的区域,我想显示 403 而不是仅仅重定向用户。
我该怎么做?
【问题讨论】:
我认为应该更改已接受的答案 - 这是一个更好的解决方案,因为它是正确的错误代码以及更好地呈现给最终用户:***.com/questions/9130191/… 【参考方案1】:只是为了后代:我认为return 403.html 是一个更好的解决方案,因为它会生成一个标准页面,就像 404 一样。上面的解决方案只显示给定的文本。而且由于在良好实践中的人只能通过键入或单击 Web 应用程序外部的链接来访问被禁止的页面,因此标准错误页面是可行的方法。
【讨论】:
【参考方案2】:在您的控制器代码中添加以下行:
render :status => :forbidden, :text => "Forbidden fruit"
http 代码到符号映射请参考this page。
【讨论】:
太棒了!谢谢大家...仅供参考,您在 :forbidden 之后缺少逗号 谢谢,我已经更新了答案,并在 ruby 符号列表中添加了对 http 代码的引用。 代码映射的旧 url 不见了。我将其更新为指向 apidock。 apidock.com/rails/ActionController/Base/… 在较新版本的 Rails 中,:text
需要变为 :plain
。以上是关于在 Rails 中触发 HTTP 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何在 select_tag rails 5 中添加数据触发属性
如何在 azure 函数 http 触发器中触发失败,并带有自定义错误响应