2011-09-15 41 views
0

我不知道发生了什么,但似乎无法找到一小段代码。我使用了没有嵌入式文档的mongomappper,一切都很顺利。使用嵌入式文档,我撞到了砖墙。Mongomapper:嵌入式文档无法正常工作

这里是我的模型:

class Assessment 
    include Mongomapper::Document 
    many :sections 
end 

class Section 
    include MongoMapper::EmbeddedDocument 
    key :title, String 
    validates_presence_of :title 
end 

当我运行:
a = Assessment.create(:sections => [ Section.new(:title => 'test') ])

我会得到下面的输出:

我使用Rails的控制台下的 mongomapper homepage的说明

=> #<Assessment _id: BSON::ObjectId('4e71efce69a74c0fb6000002'), sections: nil>

我也试过a = Assessment.new(),a.sections << Section.new(:title => "test")
但结果相同。

为什么内部没有内容?

+0

什么版本的Mongo?什么版本的MongoMapper?我认为MongoMapper和Mongo 2.0并没有在一起发挥出色。请参阅:http://groups.google.com/group/mongomapper/browse_thread/thread/8aab1abe6a0b348d?hl=en%3Fhl%3Den –

+1

我检查了我的版本,我运行的是mongodb 2.0.0,mongomapper 0.9.2,Rails 3.0 .10,Ruby 1.9.2p290。 我卸载了mongo并安装了1.8.3版本。我犯了同样的错误。 – jackie

+0

我想我只是对数据的显示方式感到困惑。 mm 0.9.1不会打印'sections:nil',但是即使内部有部分,0.9.2也是如此...... – jackie

回答

1

包括:

attr_accessible :sections 

应使创建工作(在它为我)。并且您可能需要添加:

validates_associated :sections 

使您的评估验证您预期的嵌入式部分。

是的,晚了几年,但我只是要解决这个问题,谷歌带我到这里。

相关问题