Jak publikować wartości tablicowe za pomocą curl?
Lubię testować interfejs API zaprojektowany tak, jak pokazano na poniższym przykładzie:
http://localhost:3000/api/v1/shops/1.json
Odpowiedź JSON:
{
id: 1,
name: "Supermarket",
products: [
"fruit",
"eggs"
]
}
Oto odpowiedni model:
# 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
Chcę użyćkędzior przetestować tworzenie i aktualizowanie wpisu. Dlatego używam następujących poleceń:
Stwórz:
$ curl -X POST http://localhost:3000/api/v1/shops.json -d \
"shop[name]=Supermarket&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Aktualizacja:
$ curl -X PUT http://localhost:3000/api/v1/shops/1.json -d \
"shop[name]=Supermarket&&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
Wartość dlaproducts
muszą być przesłane jako tablica. Po uruchomieniu powyższych poleceń zwracany jest następujący komunikat:
{"errors":{"products":["is invalid"]}
Jak muszę napisać wartościproducts
tablica więc działa zkędzior?