2012-04-29 93 views
0

我正在使用稱爲spine的js框架。 該框架可以通過REST api(如骨幹網)完成所有的粗暴操作。 當我得到一個創建請求到我的控制器,我得到一個模型數據,從客戶端有一個ID字段,我知道我在創建請求,所以我應該創建一個新的記錄,但mongo認爲這個記錄已經存在(由於id字段)並且調用更新而不是插入。 有沒有辦法解決這個問題?我希望客戶端創建這個臨時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])