如何将嵌入式文档放入嵌入式文档中?
问题描述:
我有了一个分类模型,并与嵌入式docuement称为“FieldModule”形式,这已经嵌入了名为“SubFieldModule”文件如何将嵌入式文档放入嵌入式文档中?
例如
class Category
include MongoMapper::Document
key :name, String
many :field_modules
end
class FieldModule
include MongoMapper::EmbeddedDocument
key :name, String
many :sub_field_modules
end
class SubFieldModule
include MongoMapper::EmbeddedDocument
key :name, String
end
在我的控制器我编辑的行动,我有:
@category = Category.find(params[:id])
3.times do
@category.field_modules << FieldModule.new()
end
要为类别设置3个FieldModule。
我希望能够做同样的每个FieldModules SubFieldModules像这样
@category.field_modules.each do |mf|
mf << SubFieldModule.new()
end
,但它不工作。
我得到错误:
NoMethodError in Sub categoriesController#edit
undefined method `<<' for #<FieldModule name: nil, _id: $oid4c2b9f594248ce19f000011b>
任何人帮助我在这?因为我需要更深入地做到这一点。
答
试试这个:
@cat = Category.new(:name => "Blah")
3.times do
@cat.field_modules << FieldModule.new()
end
@cat.field_modules.each do |mf|
mf.sub_field_modules << SubFieldModule.new()
end
这是否实际工作?当将EmbeddedDocument嵌入到另一个EmbeddedDocument中时,我似乎遇到了任何问题。 – Vortico 2013-02-19 07:29:41