13
Iは、以下の例に示すように設計されたAPIのバックエンドをテストする:カール経由で配列値を投稿するには?
http://localhost:3000/api/v1/shops/1.json
JSON応答:ここ
{
id: 1,
name: "Supermarket",
products: [
"fruit",
"eggs"
]
}
は、対応するモデルである。
# 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
curlを使用して、エントリの作成と更新をテストします。したがって、私は次のコマンドを使用します。
作成:
$ curl -X POST http://localhost:3000/api/v1/shops.json -d \
"shop[name]=Supermarket&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
更新:
$ curl -X PUT http://localhost:3000/api/v1/shops/1.json -d \
"shop[name]=Supermarket&&shop[products]=fruit,eggs&auth_token=a1b2c3d4"
をproducts
の値は配列として提出する必要があります。私は実行すると、上記の次のメッセージが返されるコマンド:
{"errors":{"products":["is invalid"]}
どのように私はそれがカールで動作しますので、products
配列の値を書き込む必要がありますか?
追加したい配列がある場合はどうなりますか?これにより製品の配列がクリアされ、これら2つの製品に置き換えられますか?あるいは、既存の製品のリストに追加しますか? (私は後者を行う方法を見つけるために) –
@トムハモンド私は別の質問としてこれを投稿する必要があると思います、私は喜んで答えます! –
確かなこと - ここに私の質問です:http://stackoverflow.com/questions/22327098/how-to-update-array-values-with-curl –