mongodb - 最佳实践 Mongoid :NestedResources

标签 mongodb ruby-on-rails-3 nested mongoid

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

什么时候使用嵌套资源,嵌套多深?

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

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

我试过了,因为 ActiveRecord 的“构建”不存在,所以整个 Controller 的东西都变成了看起来更好的东西,根本没有嵌套和手动完成所有的东西。

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

在那之后,我看到了我的第一个嵌入式文档,并且自言自语:嘿,这需要嵌套路由。一些迭代之后,我最终得到了 4 个文档而不是 2 个文档,每个文档都嵌入到其他文档中。所以嵌套路由导致了我不太喜欢的 URL。

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

问候 J.

最佳答案

我有一组类似的问题。在你发表这篇文章后,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

关于mongodb - 最佳实践 Mongoid :NestedResources,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461710/

相关文章:

mongodb - 增加嵌套数组中的多个值

ruby-on-rails - Rails 3 长文本迁移

jquery - 生成 HTML <select>,每个 <option> 内带有标题以应用 msDropDown 插件

c# - 在没有属性的类上全局使用 JsonConverter

javascript - 循环order.find、收集并向前端发送大量数据。方法不好?

javascript - 这个错误说明了什么?类型 'ParsedQs' 不可分配给类型 'string'

javascript - 保存 Rails 之前进行验证

python - python中的嵌套字典在访问不存在的键时出错

node.js - 从 mongodb/nodejs 查询嵌套对象数组

javascript - polymer 嵌套 dom-repeat 模板乘以第二个模板