2011-07-27 37 views
1

不同,我有一個管理頁面中的一個項目,我決定改變一大段的字段的名稱。所以我改變了模型以反映更改,並試圖設置等於老油田通過命令行的新領域。我無法弄清楚如何做到這一點,所以我基本上都添加了新的領域在我的管理頁面,並手動設定值(hackish的我知道)。Mongoid僅將其中的字段值從默認

所以我們可以說,新領域的2:

field :foo, default: 0 
field :bar, default: 9 

一切似乎都正常工作,當我在管理員設置foo和酒吧,被保存它們的值。但我注意到,我不能對查詢這些值,因爲如果他們沒有真正被保存在我的分貝。所以我看着MongoHub,他們確實不在場。所以我做了一些Google搜索,看到我需要保存我的更新。

所以更新的代碼現在看起來像:

if @stat_definition.update_attributes(params[:stat_definition]) 
    @stat_definition.save 
    [other stuff] 

而現在,被設定爲比其默認設置以外的任何字段得到保存,但在它的默認留下的任何字段不是。我該如何保存這些默認值?

而將foo設置爲old_foo字段和bar字段值爲old_bar的方式是什麼?

回答

0

它看起來像我需要運行一些像這樣的查詢,設置默認值:

t.update({ x : { $exists : false } }, { $set : { x : 77 } }, false, true 
+0

這並不能真正解決問題,因爲它會與新的記錄又冒出來之後。 – Tigraine

相關問題