2012-04-29 19 views
0

私はspineというjsフレームワークを使っています。 フレームワークは、REST API(バックボーンのような)を介してすべてのクラッシュ操作を実行できます。 私のコントローラへの作成リクエストを取得すると、クライアント側からのidフィールドを持つモデルデータが取得されます。作成要求にあるので、新しいレコードを作成する必要がありますが、mongoはこのレコードが既に存在すると思いますidフィールドのため)、insertの代わりにupdateを呼び出します。 この問題を解決する方法はありますか?私はこの一時的なIDを作成するクライアント側にしたい場合は、このIDを作成するコール側は無視する必要があります。mongo dbとrails idの問題

いくつかのコード:

#in my_controller 
def create 
    @model= Model.new(params[:modelData]) #model data is name=>"x", _id=>"c-0" 
    @model.save 

保存がモンゴと呼ばれているので、次のこのレコードを上書きしますを作成し、更新を行います。

+0

mongodbでクライアント生成IDを '_id'として使用しますか? – kofemann

+0

クライアントが生成したIDがわからない –

+0

問題を示すコードを投稿できますか? –

答えて

0

私は選択の余地がなかったが、私はクライアントから得たモデルからidフィールドを削除します。

0

私はあなたの質問を理解し、私はあなたがこれをしたいと思いますかなりよく分からない:

@model = Model.find_or_initialize_by_id(params[:modelData][:_id]) 
@model.update_attributes(params[:modelData])