如何将嵌入文档放入嵌入文档中?

发布于 2024-09-07 17:29:28 字数 1004 浏览 4 评论 0原文

我有一个表单,它有一个类别模型和一个名为“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>

有人帮我解决这个问题吗?因为我需要更深入地做同样的事情。

I have a form that has a category model and and embeded docuement called "FieldModule" and this has embedded document called "SubFieldModule"

For example

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

In my controller i edit action i have :

@category = Category.find(params[:id])

3.times do
  @category.field_modules << FieldModule.new()
end

To set up 3 FieldModules for the category.

I want to be able to do the same for each FieldModules SubFieldModules like so

@category.field_modules.each do |mf| 
  mf << SubFieldModule.new()
end

but it doesnt work.

i get error:

NoMethodError in Sub categoriesController#edit

undefined method `<<' for #<FieldModule name: nil, _id: $oid4c2b9f594248ce19f000011b>

Anyone help me out on this ? as i then need to take it one level deeper doing the same.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半窗疏影 2024-09-14 17:29:28

试试这个:

@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

Try this:

@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
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文