我正在尝试在Rails 3应用程序中使用Mongoid执行update_attributes
我遇到的问题是:
假设我的收藏品包含以下字段:
{“姓名”:“foo”,“email”:“bar”}
以下是方案
如果我这样做:
@person = Person.where(:Name => "foo", :_id = "some_id")
然后我这样做:
@person.update_attributes(:Name => "baba-fooka", :Last_Name => "baba-bara")
上面的代码行更新mongodb中的记录,但还会在文档中添加新字段。
如何使用update_attributes方法进行验证,该验证不允许插入尚不存在的字段
答案 0 :(得分:1)
听起来你想要的是在mongoid配置文件中将allow_dynamic_fields设置为false。默认情况下,动态字段处于启用状态,即使未为其定义字段,也允许在文档上设置和保留属性。
在选项集config/mongoid.yml
下进入allow_dynamic_fields: false
。它应该已经存在但注释掉并设置为true。确保它说错了。