3

我从一个小型 Rails3:MongoDB:Mongoid 项目开始,并提出了一些本质上更具架构性的问题。

何时使用嵌套资源,嵌套多深?

我根本不是嵌套路由的朋友,但是如果堆叠的深度不超过 2 个资源,它们会变得很方便,而且像 MongoDB 这样的面向文档的数据库似乎完全是嵌套的完美目标,因为文档本身是嵌套的。

所以我的第一个问题是:在references_many <=> referenced_in 关联的情况下我应该使用嵌套路由吗?

我试过了,因为 ActiveRecord 的“构建”不存在,所以整个控制器的东西都会分解成看起来更好的东西,根本不需要嵌套并手动完成所有的东西。

我错了吗?我也应该嵌套此类关联的路线吗?

在那之后,我来到了我的第一个嵌入式文档,并为自己辩解:嘿,这乞求嵌套路由。后来经过一些迭代,我最终得到了 4 个而不是 2 个文档,每个文档都嵌入到其他文档中。所以嵌套路由会导致我不太喜欢的 URL。

所以对于已经有 MongoDB 经验的用户的问题是:我应该嵌套吗?如果是的话,在什么情况下,有多深?

问候J。

4

1 回答 1

1

我有一组类似的问题。在您发表这篇文章后,Ryan Bates 创建了一个关于 Mongoid 的优秀 Railscast。有一节介绍了关联以及何时使用 embedded_* 习语与 references_* 习语。它有两者的例子。希望您有机会查看 Railscast。如果没有,这里是相关 ASCIIcast 的链接:

http://asciicasts.com/episodes/238-mongoid

我所读到的所有关于嵌套资源的关于 Mongoid 或 ActiveRecord 的内容都说明了嵌套深度不超过一层的最佳实践。

http://weblog.jamisbuck.org/2007/2/5/nesting-resources

于 2011-02-10T22:46:41.973 回答