假设我有一个Rails中的原型博客应用程序。我会有一个有很多评论的帖子模型。我的routes.rb可能看起来像这样:
resources :post do
resources :comment
end
这意味着例如注解的编辑路径看起来像这样:/post/21/comment/42/edit
.当我们在两个模型之间有一个has many/belongs to关系时,这似乎是有意义的。然而,一旦你注意到帖子的id并不是真正需要找到评论(甚至是帖子)的,它就开始变得不那么有意义了。
为了理解我的意思,考虑控制器中编辑操作的两个等价实现:
# Nested resource version
def edit
@post = Post.find(params[:post_id])
@comment = @post.comments.find(params[:id])
# ...
end
vs.
# Un-nested resource version
def edit
@comment = Comment.find(params[:id])
@post = @comment.post
# ...
end
我的问题是:是否有我没有考虑过的用例?或者嵌套资源只适合制作漂亮的URL?
1条答案
按热度按时间vbkedwbf1#
在这里提出我自己的问题。
是的,在某些情况下是有意义的: