Параметр вложенного массива GET-запроса Rails 5 неожиданно изменяется - PullRequest
0 голосов
/ 30 марта 2020

Я обновил приложение Rails 4 до Rails 5 (точнее 5.2.4.1).

У меня есть конечная точка GET в моем коде с тестом rspe c.

Тестовый код отправляет запрос как:

get :fetch, params: { id: 123, logs: [[1, 2, :weekly], [1, 4, :mothly]] }

Когда контроллер получает запрос, params['logs'] содержит

[["1"], ["2"], ["weekly"], ["1"], ["4"], ["monthly"]]

Это отличается от того, что я ожидал, что

[["1", "2", "weekly"], ["1", "4", "monthly"]]

Входящий URL содержит (после декодирования URL): ?id=123&logs[][]=1&logs[][]=2&logs[][]=weekly&logs[][]=1&logs[][]=4&logs[][]=monthly

Это тот же URL в Rails 4, но он работал как-то. Было ли что-то еще передано? В любом случае, это больше не работает Rails 5. Rails делает c https://edgeguides.rubyonrails.org/action_controller_overview.html#hash -and-array-parameters не упоминает параметры вложенного массива.

Можно ли сделать это работа с Rails 5? Есть ли быстрое решение?

Проблема может быть с rack gem. Используются две версии: 1.6.13 и 2.2.2.

(я могу отправить всю структуру в виде строки json в одном параметре; я знаю, что это альтернативное решение. Поэтому, пожалуйста, не предложить это как решение.)

Спасибо.

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