I jak przetestować backend API, który jest przeznaczony, jak pokazano w poniższym przykładzie:Jak publikować wartości tablic za pośrednictwem curl?
http://localhost:3000/api/v1/shops/1.json
Reakcja JSON:
{
id: 1,
name: "Supermarket",
products: [
"fruit",
"eggs"
]
}
Tutaj 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ć curl, aby przetestować tworzenie i aktualizację wpisu. Dlatego używam następujące polecenia:
Utwó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ść products
muszą zostać złożone w postaci tablicy. Kiedy uruchomić powyższe polecenia zwracany jest następujący komunikat:
{"errors":{"products":["is invalid"]}
Jak muszę napisać wartości tablicy products
więc działa z zwinięcie?
Co jeśli mam istniejącą tablicę, którą chcę dodać? Czy to oczyści tablicę produktów i zastąpi ją tymi dwoma produktami? A może przyłączy je do listy istniejących produktów? (Chciałbym znaleźć sposób na zrobienie tego drugiego) –
@TomHammond Myślę, że powinieneś zamieścić to jako osobne pytanie, chętnie Ci odpowiem! –
Oczywiście - oto moje pytanie: http://stackoverflow.com/questions/22327098/how-to-update-array-values-with-curl –