gpt4 book ai didi

ruby-on-rails - Rails:多部分/表单数据的 ActionDispatch::Request.parameter_parsers

转载 作者:行者123 更新时间:2023-12-05 02:18:33 26 4
gpt4 key购买 nike

在我的 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 将与 header 一起传递:content-type: multipart/form-data 而不是 application/json

我想对此类 API 执行相同的操作。那就是添加一个初始化程序,它将转换参数中键的大小写。

我尝试了 ActionDispatch::Request.parameter_parsers[:form_data] 但它不起作用。

我怎样才能做到这一点?

最佳答案

当您查看 DEFAULT_PARSERS ,它使用 Mime 类,因此无论我们最终使用什么,都可能需要被 Mime 类识别。所以我们可以检查Mime::Types查看可用的内容。

在那个页面上,我们看到 content-type: multipart/form-data 被映射到 :multipart_form。的确,在使用的时候

ActionDispatch::Request.parameter_parsers[:multipart_form] = -> (raw_post) {
raise "Parsing Parameters: #{raw_post}"
}

然后提交一个带有文件字段的表单,我可以触发错误。

关于ruby-on-rails - Rails:多部分/表单数据的 ActionDispatch::Request.parameter_parsers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45096629/

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