2015-10-15 75 views
0

我有一個使用腳手架在rails中生成的rails api。 我在這個API中有一個產品模型。爲了測試我的API,我創建使用curl的產品,目前我可以一次使用curl命令如何使用單個POST請求在Rails中創建多個記錄?

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)幫助如何修改我的創建功能(這是從腳手架生成),以便它可以創建接受的產品陣列(數組的長度是可變的)併爲他們創造

2)多個記錄要傳遞什麼散列數據的捲曲測試中實現的功能

+1

創建方法可以採取散列的陣列,並且將嘗試基於散列的屬性來創建每個對象,http://api.rubyonrails.org/classes/ActiveRecord/Persistence/ClassMethods.html#方法 - 我創建 – Swards

+0

可能的重複[INSERT多個記錄在rails活動記錄上使用ruby](http://stackoverflow.com/questions/10022178/insert-multiple-records-using-ruby-on-rails-active-record ) –

+0

你能告訴我應該如何在json散列中傳遞多個產品的數組? –

回答

0

在ActiveRecord的#源創建方法,你可以看到,它遍歷數組。你可以自己做這樣的事情來包含強大的參數。

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 
相關問題