2016-06-30 7 views
1

データベースに配列imagesを含む新しいエントリを作成しようとしています。JSONの配列がデータベースに正しく渡されていません

Product.new("title":"Hello World", "images":["a.jpg","b.jpg"])を使用すると、問題なく新しいエントリを作成できます。しかし、APIにパラメータを渡そうとすると、配列は空のまま残ります(他のフィールドはすべて埋められます)。

要求は私が使用:

curl -i -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"title":"Hello World", "images":["a.jpg", "b.jpg"], "api_key":"API_KEY"}' http://localhost:3000/api/products 

パラメータが使用して渡されます。

def product_params 
    params.require(:product).permit(:id, :title, :images) 
end 

新しいデータベース・エントリは、使用して作成されます。

Product.new(product_params) 

すべてのヘルプは高く評価されています。

答えて

2

images: []を使用してください。経由

:ドキュメント[許可スカラー型がString、シンボル、NilClass、数値、 TrueClass、FalseClassの、日付、時刻、日時、StringIOを、IOですhttps://github.com/rails/strong_parameters]

からhttps://stackoverflow.com/a/18641790/1076207

、 ActionDispatch :: Http :: UploadedFileとRack :: Test :: UploadedFile。

def product_params 
    params.require(:product).permit(:title, images: []) 
end 
:paramsはの値が スカラー値は、空の配列にキーをマッピング許可の配列でなければならないことを宣言する

関連する問題