2012-04-13 9 views
0

私はsinatra + mongoidを使用するアプリを作成しています。私は2つのmodelsを持って、連絡先は多くの携帯電話を持っています。私シナトラコントローラをテストするために、私は、このコマンド `sinatra + mongoid

curl -X POST -d "contact[name]=nome&contact[email][email protected]&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":"[email protected]", 
"github":"diegodfsd", 
"name":"diego2", 
"phone":{ 
"0":{ 
"number":"89311768", 
"type":"cellphone" 
}, 
"1":{ 
"number":"55555555", 
"type":"home" 
} 
}, 
"twitter":"diegodfsd" 
} 

gist

答えて

1

あなたはこれなしには何も変化しない代わりに電話

curl -X POST -d "contact[name]=nome&contact[email][email protected]&contact[phones_attributes][0][number]=88888888&contact[phones_attributes][0][type]=1&contact[phones_attributes][2][number]=77777777&contact[phones_attributes][3][type]=1" 
+0

のphones_attributes paramsはを使用する必要があります。私は配列としてデータを保存し、ハッシュとして保存しません。私はそれを保存する必要があります:https://gist.github.com/2399768 –