Метод рубинового столбика вставить несколько строк
Как разместить несколько строк в БД, используя ruby Grape. Например, при тестировании с CURL это работает нормально
curl -H "Content-Type: application/json" -X POST \
-d '{"name": "test", "age": "22"}' http://localhost:3000/students
Но это не работает
curl -H "Content-Type: application/json" -X POST \
-d '[{"name": "test", "age": "22"}, {"name": "someone", "age": "32" }]' \
http://localhost:3000/students
Это мой виноградный код API
post do
student = Student.new
student.name = params[:name]
student.age = params[:age]
student.save!
end
1 ответ
Вы используете неверный синтаксис для объекта массива JSON. Попробуй это:
curl -H "Content-Type: application/json" \
-X POST \
-d '[{"name": "test", "age": "22"}, {"name": "someone", "age": "32" }]' \
http://localhost:3000/students
РЕДАКТИРОВАТЬ:
Если ваша полезная нагрузка {"name": "test", "age": "22"}
ваш код работает. Но у вас есть массив (params.kind_of?(Array)
).
Вы можете сделать это:
post do
params.each do |student_params|
student = Student.new
student.name = student_params[:name]
student.age = student_params[:age]
student.save!
end
end
Объяснение:
params[:name]
# => nil
params.first[:name]
#=> test