0

sinatra+mongoidを使用するアプリを作成しています。私は2つのモデルを持っています、連絡先は多くの電話を持っています。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で1つのクエリを実行すると、期待どおりに保存されないことがわかります。電話クラスを配列で保存する必要がありますが、電話はハッシュであり、私の投稿データと同様に、キーは「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 に答える