创建一批文档时出错

时间:2013-07-12 15:06:03

标签: ruby mongoid

Mongoid documentation之后我试图将哈希数组传递给create方法,但它会引发错误。

代码是:

Person.create([
  { first_name: "Heinrich", last_name: "Heine" },
  { first_name: "Willy", last_name: "Brandt" }
])

它会抛出以下错误:

NoMethodError: undefined method `keys' for #<Array:0xae4f69c>

运行:

mongoid-3.0.23
ruby 1.9.3
rails 3.2.13

1 个答案:

答案 0 :(得分:2)

该功能是在Mongoid 3.1.0中引入的,在以前的版本中,create方法只接受一个字段的哈希作为参数,以创建一个文档,因为你传递一个数组,你会得到错误。

如果要使用早于3.1.0版Mongoid的版本将一批文档插入集合中,可以使用Moped::Collection#insert方法执行此操作,如下所示:

Person.collection.insert([
  { first_name: "Heinrich", last_name: "Heine" },
  { first_name: "Willy", last_name: "Brandt" }
])