Я использую Ruby и пытаюсь создать API для обновления всех игроков с помощью одного запроса POST. Я должен обновить всех игроков, у которых есть «идентификаторы» по запросу. Запрос на публикацию дается в виде массива [JSON], поэтому мне нужно сравнить все идентификаторы для каждого JSON с игроками в базе данных, и мне нужно обновить тех, у кого указан идентификатор. Вот код почтового запроса:
{
"players": [
{
"player_id": 1,
"shirt_number": "25",
"speed": "47",
"agility": "80",
"shot": "62",
"step": "24",
"technique": "70",
"contrasts": "59",
"resistance": "65",
"parades": "25",
"aggressiveness": "60",
"coldness": "50"
},
{
"player_id": 2,
"shirt_number": "11",
"speed": “52",
"agility": “78",
"shot": “65",
"step": “23",
"technique": “60",
"contrasts": “19",
"resistance": “44",
"parades": "25",
"aggressiveness": "60",
"coldness": "50"
}
]
}
Здесь есть код и параметры:
desc 'Update a team'
params do
requires :players, type: Array[JSON] do
requires :id, type: Integer, desc: "Player ID"
requires :shirt_number, type: String, desc: "Shirt Number"
requires :speed, type: String, desc: "Speed"
requires :agility, type: String, desc: "Agility"
requires :shot, type: String, desc: "Shot"
requires :step, type: String, desc: "Step"
requires :technique, type: String, desc: "Technique"
requires :constrasts, type: String, desc: "Constrasts"
requires :resistance, type: String, desc: "Resistance"
requires :parades, type: String, desc: "Parades"
requires :aggressiveness, type: String, desc: "Aggressiveness"
requires :coldness, type: String, desc: "Coldness"
end
end
post 'update_team' do
params[:players].each do |player|
p = Player.find_by(id: params[:id])
p.update(player)
end
end
Но это не работает! Я ничего не нашел об этом. Кто-то может мне помочь? Заранее большое спасибо!