我正在创建一个使用sinatra + mongoid的应用程序。我有两个models,联系人有很多电话。为了测试我的sinatra控制器,我使用这个命令`
发布我的数据curl -X POST -d "contact[name]=nome&contact[email]=email@dominio.com&contact[phone][0][number]=88888888&contact[phone][0][type]=1&contact[phone][2][number]=77777777&contact[phone][3][type]=1"
但是当我在mongodb中执行一个查询时,我发现没有按预期保存。我需要手机类将保存数组,但现在手机是一个哈希,其中键是“0”,“1”,N喜欢我的帖子数据。我该如何解决这个问题?我希望保存数据:
{
"_id":"4f889875b336e722a0000003",
"email":"diego.dias2@dominio.com.br",
"github":"diegodfsd",
"name":"diego2",
"phone":{
"0":{
"number":"89311768",
"type":"cellphone"
},
"1":{
"number":"55555555",
"type":"home"
}
},
"twitter":"diegodfsd"
}
答案 0 :(得分:1)
您需要使用phones_attributes params而不是phone
curl -X POST -d "contact[name]=nome&contact[email]=email@dominio.com&contact[phones_attributes][0][number]=88888888&contact[phones_attributes][0][type]=1&contact[phones_attributes][2][number]=77777777&contact[phones_attributes][3][type]=1"