2010-06-30 140 views
2

我有了一個分類模型,並與嵌入式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> 

任何人幫助我在這?因爲我需要更深入地做到這一點。

回答

1

試試這個:

@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 
+0

這是否實際工作?當將EmbeddedDocument嵌入到另一個EmbeddedDocument中時,我似乎遇到了任何問題。 – Vortico 2013-02-19 07:29:41