使用Rails rake db:seed将嵌入的文档播种到MongoDB

时间:2011-10-13 01:08:48

标签: ruby-on-rails mongodb

如何构建db.seeds以便为MongoDB提供数据,尤其是在包含嵌入文档时?

我在尝试播放一个错误结构的db.seeds文件时遇到了以下错误:

无法将类ClassName的对象序列化为BSON。

2 个答案:

答案 0 :(得分:1)

首先创建一个'new'嵌套对象,例如address,具有属性street和city,并将其设置为等于变量。然后创建父对象,在本例中为具有属性地址的用户,并将您在上面创建的变量分配给它。由于它是嵌套对象,因此需要将变量包装在数组[]中。这样做会使其易于阅读,特别是如果你有很多嵌套对象。引用嵌套对象时,请确保排除冒号后的任何空格,否则将出错。

a = Address.new(street: 'Any_Street', city: 'Any_City')
User.create(address:[a])

这将使用嵌套在用户对象中的地址对象为mongoDB提供种子。

答案 1 :(得分:0)

Parent.create(title: 'foo', children: [
  Child.create(title: 'bar', date: Time.utc(2011,10,13)),
  Child.create(...),
  Child.create(...)
])