Вы должны извлечь существующие значения из parameter_parsers
, изменить его в соответствии с вашими потребностями, а затем сбросить значения до ваших измененных значений. Из документации ActionDispatch :: Http :: Parameters :
parameter_parsers=(parsers)
Настройте анализатор параметров для данного типа MIME.
Он принимает хеш, где ключ - это символ типа MIME, а значение - proc.
original_parsers = ActionDispatch::Request.parameter_parsers
xml_parser = -> (raw_post) { Hash.from_xml(raw_post) || {} }
new_parsers = original_parsers.merge(xml: xml_parser)
ActionDispatch::Request.parameter_parsers = new_parsers
В вашем конкретном случае вы должны взглянуть на парсеры в original_parsers
, чтобы увидеть, есть ли что-нибудь, что можно удалить. В простом приложении Rails 5, на которое мне удобно смотреть, единственные значения, которые у меня есть:
=> {
:json => #<Proc:0x00007fe818fc6fb8@/Users/foo/.rvm/gems/ruby-2.6.0-preview2/gems/actionpack-5.2.1/lib/action_dispatch/http/parameters.rb:11 (lambda)>
}
Конфигурация вашего приложения, вероятно, отличается, но чтобы ответить на ваш вопрос о том, как удалить значение, эта простая версия должна работать:
ActionDispatch::Request.parameter_parsers = ActionDispatch::Request.parameter_parsers.except(:json)
Вы можете найти дополнительную полезную информацию в этом ответе .