mongoid 将嵌套属性拆分为两个哈希?

mongoid splits nested attributes in two hashes?

我有一个模型 List,它具有另一个模型 Article 的嵌套属性。让我烦恼的是我有 Ruby 请求参数,我的第一个嵌套属性在 Article 散列中,所有其他(第二、第三篇文章数据等)在 article_parameters.[=16= 中]

我在这里遵循标准的 mongoid 教程。

我在列表控制器的创建方法中有@list.articles.build。 我可以影响构建方法中的内容吗?我尝试致电 build(all_the_correct_hashes),但似乎无法解决问题。

所以,简而言之,我有 2 个问题。

  1. 为什么articles只获取第一个嵌套属性,第二个和下一个去article_parameters散列?

  2. 为什么 list.articles.build 只在我的 Mongo 文档中创建 _id,而不用其他字段填充它?

我会写下我的解决方案,因为我看到有人赞成我的问题。

坦率地说,我没有找到任何关于为什么会发生这种行为的答案。 解决方案有点老套。

在您的保存控制器中,调用 List.article.build(id => params[:id], someotherstuff => params[:someotherstuff])

在这种情况下,您传递给构建的所有内容都将填充 article_parameters 哈希。

idsometherstuff 是我的 Article 模型的字段。

我觉得这应该由 Mongoid 隐式完成,但它不起作用。他们的发展也看不出有什么不妥。