mongoid在两个哈希中分割嵌套属性?

kab*_*oom 6 ruby ruby-on-rails mongodb mongoid

我有一个List带有另一个嵌套属性的模型,Article.让我烦恼的是我有Ruby请求参数,我的第一个嵌套属性是Article哈希,还有所有其他(第二,第三篇文章数据等)在article_parameters中.

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

我在List控制器的create方法中有@ list.articles.build.我可以影响构建方法吗?我试过打电话,build(all_the_correct_hashes)但似乎没有解决问题.

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

  1. 为什么articles只获得第一个嵌套属性,第二个和下一个去article_parameters哈希?

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

小智 0

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

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

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

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

idsometherstuff是我模型的字段Article

我觉得这应该由 Mongoid 隐式完成,但它就是行不通。他们的发展也没有发现任何问题。