gpt4 book ai didi

ruby-on-rails - rails route 的嵌套资源有什么作用?

转载 作者:行者123 更新时间:2023-12-04 18:01:50 25 4
gpt4 key购买 nike

我遇到了一些看起来像这样的代码:

resources :posts, only: [:create, :index, :show] do
resources :comments, only: [:show, :create] do
end
end

我知道 resources 做什么(它会自动创建一些 restful 路由)并且我知道 only 做什么(它限制只包含哪些),但我不知道了解在其他资源中嵌套资源的作用。

这实际上对项目有什么作用吗?还是嵌套它们只是一种好习惯,以便您可以看到它们之间的关系?

换句话说,这会完成完全相同的事情吗?:

resources :posts, only: [:create, :index, :show]
resources :comments, only: [:show, :create]

最佳答案

不,它不会产生完全相同的东西。

您可以实际尝试并查看 rake routes 输出。

第一个选项意味着,有一个模型 Post,它与模型 Comment 有一个 has_many 关联(Comment 模型是 Post 的子模型。

使用此选项,您可以查看和创建某些post 的评论。查看更多详情 in docs .

第一个选项会生成如下路由:

/posts/:post_id/comments/comment_id

但是在第二个选项中你不会有这样的机会,因为路线是不相关的。

这里生成的路由看起来像

/posts/:post_id/
/comments/comment_id

关于ruby-on-rails - rails route 的嵌套资源有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34028375/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com