我喜欢测试API后端,其设计如下例所示:
@H_404_2@http://localhost:3000/api/v1/shops/1.json
JSON响应:
@H_404_2@{ id: 1,name: "Supermarket",products: [ "fruit","eggs" ] }以下是相应的型号:
@H_404_2@# 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来测试创建和更新一个条目.因此,我使用以下命令:
创建:
@H_404_2@$curl -X POST http://localhost:3000/api/v1/shops.json -d \ "shop[name]=Supermarket&shop[products]=fruit,eggs&auth_token=a1b2c3d4"更新:
@H_404_2@$curl -X PUT http://localhost:3000/api/v1/shops/1.json -d \ "shop[name]=Supermarket&&shop[products]=fruit,eggs&auth_token=a1b2c3d4"产品的价值需要作为数组提交.当我运行以上命令时,会返回以下消息:
@H_404_2@{"errors":{"products":["is invalid"]}我需要如何编写产品阵列的值,使其与卷曲一起使用?
解决方法
@H_404_2@$curl -X POST http://localhost:3000/api/v1/shops.json -d \
"shop[name]=Supermarket \
&shop[products][]=fruit \
&shop[products][]=eggs \
&auth_token=a1b2c3d4"