0

如何使用 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
4

1 回答 1

0

您对 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
于 2015-11-25T09:33:08.950 回答