嵌套资源有必要吗? Rails

Nesting the resources necessary? Rails

我有用户模型和船模型。用户有很多船。船属于用户。我想知道的是,即使我没有嵌套资源,我也能够创建一条船来登录用户。所以我的 url 变成了 ..../boats.new2 (2 作为用户 ID),它实际上保存给 ID 号为 2 的用户。

但据我所知,如果我有嵌套资源,它会变成类似 .../user/2/boats/1. 的东西,不是吗?

我还没有尝试 #edit 对任何一种情况采取行动,所以不确定使用哪种情况及其效果,使用它们是否有任何其他优势,或者不嵌套是错误的?

Rails 中不需要嵌套路由。只要在模型中定义了活动记录 belongs_tohas_many 方法,以及数据库中的外键,就可以维护船和用户之间的关系。

一般来说,如果对象之间有明显的关系,比如用户和帖子(或船),你应该嵌套资源。它只是让您的用户更有意义,并且作为 API 结构。

在某些情况下,您可能希望将关系嵌套在不同的名称下,例如类别名称。例如,您的 uri 模式可能看起来像 /sailboats/boats/1powerboats/boat/2。最重要的是,您应该以对项目用户和开发人员而言合乎逻辑的方式构建路由。