gpt4 book ai didi

ruby-on-rails - 如何避免 Rails 在错误的内容类型上崩溃

转载 作者:行者123 更新时间:2023-12-01 09:13:06 24 4
gpt4 key购买 nike

我在 Ubuntu 12.04 上使用 rails 3.2.8

我正在构建一个仅支持 json 的网络服务。现在,如果有人向我发送不是 json 但将内容类型设置为 application/json 的数据,rails 应用程序将引发异常并返回 500(内部服务器错误)。

此异常在调用 Controller 操作之前发生在 Rails 中,因为 Rails 正在尝试创建参数结构并将传入数据解析为 JSON。

我不确定这是正确的行为。如果它拯救了异常并在一些特殊的处理程序中或在我的操作中使用一些变量集让我知道,我会更喜欢。我想指出 415(不支持的媒体类型)或 422(不可处理的实体)。我的猜测是 422 在这种情况下更合适。

关于如何实现这一点有什么想法吗?

最佳答案

我猜你需要稍微改变一下中间件。创建自定义中间件并将其插入到 ParamsParser 之前,或者覆盖 ParamsParser

看看这个request , 有一个 ParamsParser 覆盖的示例。

创建自定义中间件还有另一个优点:如果数据是 json 但内容类型不是 application/json,您可以在这里修复它 ( example )。

关于ruby-on-rails - 如何避免 Rails 在错误的内容类型上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14579654/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com