Ответ 1
Получил! массив хэшей не поддерживается для данных формы RSpec по умолчанию размещает его как данные формы. Решение:
post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'}
Похож на ошибку в RSpec, но, возможно, я что-то пропустил.
У меня есть спецификация запроса, где я размещаю JSON, который содержит массив хэшей:
спецификации/запросы/dummy_request_spec.rb:
post "http://my.server.com/some/route", {
format: :json,
data: [
{
details: {
param1: 1
},
},
{
details: {
param2: 1
}
}
]
}
По какой-то нечетной причине RSpec объединяет хэши в один элемент и затем отправляет их на сервер. распечатать параметры, полученные в контроллере:
data: [
{
details: {
param1: 1,
param2: 2
},
},
]
версии: RSpec-2.13.0 Рельсы-3.2.10
Очень странно!!
Спасибо
Получил! массив хэшей не поддерживается для данных формы RSpec по умолчанию размещает его как данные формы. Решение:
post '...', {...}.to_json, {'CONTENT_TYPE' => "application/json", 'ACCEPT' => 'application/json'}
Кроме того, имейте в виду, что у вас есть дополнительная запятая:
data: [
{
details: {
param1: 1
}**,**
},
{
details: {
param2: 1
}
}
]
ваш ответ помог мне ответить на мой собственный пост:
Rails JSON API тестирует POST-запрос с PARAMS в JSON
вы должны принять его как правильно:) спасибо за помощь