我有一个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,它可以从一个帖子请求创建多个产品,这样就可以执行类似的请求,我可以在一个请求中创建多个产品。
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)如何修改我的创建函数(从scaffold生成),以便它可以创建接受产品数组(数组的长度可以是变量)并为它们创建多个记录
2)要传递给curl以测试已实现的功能的数据哈希值
答案 0 :(得分:-1)
在ActiveRecord #create方法的源代码中,您可以看到它循环遍历数组。你可以自己做这样的事情来包括强参数。
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