次の例に示すように設計された 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"]}
curlproducts
で機能するように配列の値を書き込むにはどうすればよいですか?