0

私はspineと呼ばれるjsフレームワークを使用しています。フレームワークは、REST api(バックボーンなど)を介してすべてのクラッド操作を実行できます。コントローラに作成リクエストを受け取ると、クライアント側からidフィールドを持つモデルデータを取得します。作成リクエストに参加しているので、新しいレコードを作成する必要がありますが、mongoはこのレコードがすでに存在すると考えています( idフィールドの)そして挿入の代わりに更新を呼び出します。この問題を解決する方法はありますか?クライアント側でこの一時IDを作成したいのですが、サーバー側でこのIDを作成する場合は無視する必要があります。

いくつかのコード:

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

saveがmongodoupdateと呼ばれる場合、次のcreateはこのレコードをオーバーライドします。

4

2 に答える 2

0

私はあなたの質問を理解するかどうかはよくわかりませんが、あなたはこれが欲しいと思います:

@model = Model.find_or_initialize_by_id(params[:modelData][:_id])
@model.update_attributes(params[:modelData])
于 2012-05-01T22:12:38.883 に答える
0

クライアントから取得したモデルからidフィールドを削除せざるを得ませんでした。

于 2012-07-24T20:56:44.080 に答える