Почему Rails / Thin не может интерпретировать большие тела POST? - PullRequest
1 голос
/ 06 сентября 2011

На нашем клиенте мы отправляем тело POST следующим образом на маршрут по Rails:

names[0][name]=Joe Random&names[0][id]=123&names[1][name]=Joe Random2&names[1][id]=124

Это правильно закодировано в реальном запросе, просто хотелось показать, как оно должно выглядеть. В действии, которое обрабатывает этот запрос, мы видим ожидаемый результат при ведении журнала params[:names]:

{"0"=>{"name"=>"Joe Random", "id"=>"123"}, "1"=>{"name"=>"Joe Random2", "id"=>"124"}}

Однако, если это тело POST становится очень большим, что-то вроде этого:

names[0][name]=Joe Random&names[0][id]=123 ... names[5000][name]=Joe Random5000&names[5000][id]=5124

И мы регистрируем params[:names], теперь оно nil, хотя вы можете увидеть тело POST, зарегистрировав request.raw_post. Кроме того, нет ничего необычного в данных большого или маленького запроса, потому что я могу разобрать их вручную.

У кого-нибудь есть идея, почему это так? Если это поможет, у меня включен protect_from_forgery. Также я на Rails 3.0.9.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...