Это решение работает на Rails 5 с предупреждением об устаревании, но Rails 5.1 удаляет deep_transform_keys! от params, так что это не очень хорошее долгосрочное решение, и нам, вероятно, понадобится модификация
м 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]
но это не работает.
Как мне этого добиться?