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?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage