嵌套必要的资源?轨道

时间:2015-04-16 20:28:32

标签: ruby-on-rails resources

我有用户模型和船模型。用户有很多船。船属于用户。我不知道的是,即使我没有嵌套资源,我也可以创建一个登录用户的船。所以我的网址变为。.../boats.new2(2作为用户ID),它实际上会保存到ID为2的用户。

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

我没有尝试#edit任何一个案例,所以不确定使用哪一个及其效果,使用其中任何一个是否还有其他优点,或者嵌套是不是错了?

1 个答案:

答案 0 :(得分:1)

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

通常,如果对象(例如用户和帖子(或船))之间存在明显的关系,则应嵌套资源。它只是让您的用户和API结构更有意义。

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