Мои действия ведут себя странно.Все запросы, которые я делаю с типом содержимого XML (через cURL, ActiveResource, как вы его называете), внутри моих действий содержат пустой params[]
.Я отладил request.content_type
, и это application/xml
.Отладка request.body.read
показывает, что XML, который я отправил в запросе, тоже там.
Интересно, что отладка request.formats
возвращает [*/*]
.
Я также попытался добавить простое промежуточное программное обеспечение Rack в начале моего стека, и CONTENT_TYPE
прямо там, в моем envпеременная, с правильным значением.
При этой проблеме мое тело запроса никогда не анализируется, и я всегда попадаю в блок format.html
моего respond_to
вызова.
Я проверил ActionDispatch::ParamsParser
и параметры там правильно строятся и помещаются в env["action_dispatch.request.request_parameters"]
.Однако они заканчиваются как пустые params[]
в моих действиях (только для не HTML-запросов, то есть JSON, XML и т. Д.).
Есть идеи, что может быть не так?Спасибо!
Тем временем я сам нашел решение: в моем приложении была странная комбинация memcache-client для хранения сессий.Это сработало на моей коллеге по Ubuntu box.Я заменил memcache-client на dalli и изменил хранилище сеанса на конфигурацию, чтобы явно установить хост сервера memcache в качестве локального хоста.Это сработало.