我有一个包含类别模型的表单,并且嵌入了名为“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>
有人帮我解决这个问题吗?因为我需要更深层次地做同样的事情。
答案 0 :(得分: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