【发布时间】:2017-07-14 06:59:01
【问题描述】:
在我的 Rails API 中,我添加了一个初始化程序,它将 JSON 输入的键从蛇形大小写更改为下划线分隔。像这样:
ActionDispatch::Request.parameter_parsers[:json] = -> (raw_post) {
data = ActiveSupport::JSON.decode(raw_post)
data = {:_json => data} unless data.is_a?(Hash)
data.deep_transform_keys!(&:underscore)
}
现在,某些 API 将使用标头传递:content-type: multipart/form-data 而不是 application/json
我想对此类 API 做同样的事情。那就是添加一个初始化器,它将转换参数中键的大小写。
我试过ActionDispatch::Request.parameter_parsers[:form_data],但它不起作用。
我怎样才能做到这一点?
【问题讨论】:
-
你解决了吗?我按照以下答案中的建议添加了一个解析器,但它打开了一罐蠕虫:(
-
是的,我做到了。嗯,有点。我无法使用
parameters_parsers使其工作。它只是不适用于 JSON 参数。让我通过将其添加为答案来向您展示我的代码。