Ruby on rails 如何使用单个POST请求在Rails中创建多个记录?

Ruby on rails 如何使用单个POST请求在Rails中创建多个记录?,ruby-on-rails,curl,activerecord,Ruby On Rails,Curl,Activerecord,我有一个rails api,它是在rails中使用脚手架生成的。 我在这个api中有一个产品模型。为了测试我的api,我正在使用curl创建产品,目前我一次只能使用curl命令创建一个产品 curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"product: {"name":"Felix" }}' http://localhost:3000/products.json 现

我有一个rails api,它是在rails中使用脚手架生成的。 我在这个api中有一个产品模型。为了测试我的api,我正在使用curl创建产品,目前我一次只能使用curl命令创建一个产品

curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"product: {"name":"Felix" }}' http://localhost:3000/products.json
现在我想修改我的api,使它可以从一个post请求中创建多个产品,这样就可以执行类似的请求,并且我可以在一个请求中创建多个产品

 curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{products: {"product": {"name":"Felix" }, {"product": {"name":"Felix" } }' http://localhost:3000/products.json
我需要两方面的帮助

1) 如何修改我的create函数(它是从scaffold生成的),以便它可以创建和接受一个产品数组(数组的长度可以是可变的),并为它们创建多个记录


2) 在ActiveRecord#create方法的源代码中,要传递给curl以测试实现的功能的数据散列,您可以看到它在数组中循环。您可以自己执行类似的操作来包含强参数

def create
  if params[:product].is_a? Array
    params[:product].map { |hash| Product.create(product_params(hash)) }
  else
    # normal action
  end
  # handle redirects and renders
end

private

def product_params(hash_of_params)
  # return results of strong params
end

create方法可以接受一个散列数组,并将尝试根据散列的属性创建每个对象,可能是重复的。您能告诉我如何在json散列中传递多个产品的数组吗?可能像
'{“product”:[{“name”:“Felix1”},{“name”:“Felix2”}]}“
如果我不更改我的创建操作并在curl命令中传递它,那么我将得到这个错误NoMethodError(对于[{“name”=>“Felix1”},{“name”=>“Felix2”}]:数组未定义的方法'permit')