【发布时间】:2018-05-29 22:22:27
【问题描述】:
我有一个 Rails API,它只接受 JSON 作为输入。如果我未能包含 Content-Type: application/json 的标头,则 request.headers['Content-Type'] 默认为 application/x-www-form-urlencoded 并且参数无法正确解析。整个 json 主体成为参数中的一个键。结果是 422,这让 API 用户感到困惑。
如果没有提供 Content-Type 标头,如何将其更改为默认解析为 json?
许多其他问题回答了如何使用响应格式执行此操作。要更改此默认值,您可以在控制器中指定它:
request.format = :json
或者在路由命名空间中,例如:
namespace :api, defaults: {format: :json} do
但是,这会更改默认响应格式,但不会更改默认请求格式。 我需要做的是更改解析参数的默认请求格式。
【问题讨论】:
标签: ruby-on-rails json