1

我正在尝试在 Rails 3 应用程序中使用 Mongoid 执行 update_attributes

我遇到的问题是:

假设我的收藏有以下字段:

{“名称”:“foo”,“电子邮件”:“酒吧”}

这是场景

如果我这样做:

@person = Person.where(:Name => "foo", :_id = "some_id")

然后我这样做:

@person.update_attributes(:Name => "baba-fooka", :Last_Name => "baba-bara")

上面这行代码更新了 mongodb 中的记录,同时也在文档中增加了一个新的字段

如何将 update_attributes 方法与不允许插入尚不存在的字段的验证一起使用

4

1 回答 1

2

听起来您想要的是在 mongoid 配置文件中将 allow_dynamic_fields设置为 false 。动态字段默认启用,即使没有为属性定义字段,也可以设置属性并将其保留在文档中。

进入config/mongoid.yml选项集下allow_dynamic_fields: false。它应该已经存在,但已注释掉并设置为 true。确保它说的是假的。

于 2012-08-15T18:31:05.347 回答