我在项目中有一个管理页面,我决定更改大部分字段的名称。所以我更改了模型以反映更改,并尝试通过命令行将新字段设置为等于旧字段。我无法弄清楚如何做到这一点,所以我基本上在我的管理页面中添加了新字段,并手动设置了值(我知道hackish)。
所以让我们说两个新字段是:
field :foo, default: 0
field :bar, default: 9
一切似乎工作正常,当我在管理员中设置foo和bar时,他们的值被保存了。但我注意到我无法查询这些值,就好像它们并没有真正保存在我的数据库中一样。所以我看了MongoHub,确实他们不在那里。所以我做了一些谷歌搜索,看到我需要保存我的更新。
所以更新的代码现在看起来像:
if @stat_definition.update_attributes(params[:stat_definition])
@stat_definition.save
[other stuff]
现在任何设置为默认值以外的字段都会被保存,但任何默认保留的字段都不会保存。如何保存这些默认值?
将foo设置为字段old_foo并将其设置为old_bar的值会是什么样的?
答案 0 :(得分:0)
看起来我需要像这样运行一些查询来设置默认值:
t.update( { x : { $exists : false } }, { $set : { x : 77 } }, false, true