0

我正在创建一个使用 sinatra + mongoid 的应用程序。我有两个型号,联系人有很多电话。为了测试我的 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"
}

要旨

4

1 回答 1

1

您需要使用phones_attributes 参数而不是电话

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"
于 2012-04-16T07:42:00.353 回答