Wie poste ich Array-Werte per Curl?
Ich möchte ein API-Backend testen, das wie im folgenden Beispiel dargestellt aufgebaut ist:
http://localhost:3000/api/v1/shops/1.json
Die JSON-Antwort:
{
id: 1,
name: "Supermarket",
products: [
"fruit",
"eggs"
]
}
Hier ist das entsprechende Modell:
# app/models/shop.rb
class Shop < ActiveRecord::Base
extend Enumerize
attr_accessible :name, :products
serialize :products, Array
enumerize :products, in: %w{fruit meat eggs}, multiple: true
resourcify
validates :name, presence: true, length: { in: 5..50 }
validates :products, presence: true
end
Ich möchte benutzenlocken um das Erstellen und Aktualisieren eines Eintrags zu testen. Daher verwende ich folgende Befehle:
Erstellen:
$ curl -X POST http://localhost:3000/api/v1/shops.json -d \
"shop[name]=Supermarket&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Aktualisieren:
$ curl -X PUT http://localhost:3000/api/v1/shops/1.json -d \
"shop[name]=Supermarket&&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Der Wert fürproducts
müssen als Array eingereicht werden. Wenn ich die obigen Befehle ausführe, wird die folgende Nachricht zurückgegeben:
{"errors":{"products":["is invalid"]}
Wie muss ich die Werte der schreiben?products
Array so funktioniert es mitlocken?