嵌套资源有必要吗? Rails
Nesting the resources necessary? Rails
我有用户模型和船模型。用户有很多船。船属于用户。我想知道的是,即使我没有嵌套资源,我也能够创建一条船来登录用户。所以我的 url 变成了 ..../boats.new2
(2 作为用户 ID),它实际上保存给 ID 号为 2 的用户。
但据我所知,如果我有嵌套资源,它会变成类似 .../user/2/boats/1.
的东西,不是吗?
我还没有尝试 #edit
对任何一种情况采取行动,所以不确定使用哪种情况及其效果,使用它们是否有任何其他优势,或者不嵌套是错误的?
Rails 中不需要嵌套路由。只要在模型中定义了活动记录 belongs_to
和 has_many
方法,以及数据库中的外键,就可以维护船和用户之间的关系。
一般来说,如果对象之间有明显的关系,比如用户和帖子(或船),你应该嵌套资源。它只是让您的用户更有意义,并且作为 API 结构。
在某些情况下,您可能希望将关系嵌套在不同的名称下,例如类别名称。例如,您的 uri 模式可能看起来像 /sailboats/boats/1
或 powerboats/boat/2
。最重要的是,您应该以对项目用户和开发人员而言合乎逻辑的方式构建路由。
我有用户模型和船模型。用户有很多船。船属于用户。我想知道的是,即使我没有嵌套资源,我也能够创建一条船来登录用户。所以我的 url 变成了 ..../boats.new2
(2 作为用户 ID),它实际上保存给 ID 号为 2 的用户。
但据我所知,如果我有嵌套资源,它会变成类似 .../user/2/boats/1.
的东西,不是吗?
我还没有尝试 #edit
对任何一种情况采取行动,所以不确定使用哪种情况及其效果,使用它们是否有任何其他优势,或者不嵌套是错误的?
Rails 中不需要嵌套路由。只要在模型中定义了活动记录 belongs_to
和 has_many
方法,以及数据库中的外键,就可以维护船和用户之间的关系。
一般来说,如果对象之间有明显的关系,比如用户和帖子(或船),你应该嵌套资源。它只是让您的用户更有意义,并且作为 API 结构。
在某些情况下,您可能希望将关系嵌套在不同的名称下,例如类别名称。例如,您的 uri 模式可能看起来像 /sailboats/boats/1
或 powerboats/boat/2
。最重要的是,您应该以对项目用户和开发人员而言合乎逻辑的方式构建路由。