2011-08-09 92 views
0

我有一個模型「民以食爲天」,我用創建它:Ruby on Rails:兩次保存模型會生成兩條記錄?

food= Food.new 
food.attributes = attributeHash 
food.save #creates 1 new record 

現在,當它的保存,馬上,我做的:

food.json = food.to_json 
food.save #creates another record! Why??? 

這將創建ID的其他記錄(主鍵)增加1.我預計它只是更新已經插入的記錄。我發誓我曾經這樣做過,它的工作,所以我在這裏做錯了嗎?我得到預期的行爲?

+0

我用上面的代碼創建了我自己的測試用例,它只是修改了現有的對象。它沒有創建兩個。有沒有關於你的設置可能會有所不同?你使用的是什麼版本的Rails?你的食物模型是否有特殊的邏輯? – dontangg

回答

0

試着做兩個#save()連續調用food#json=,也許有一些東西在那個setter中創建一個新的對象。