说我在Rails中拥有原型博客应用程序。我会有一个Post模型有很多评论。我的routes.rb可能如下所示:
resources :post do
resources :comment
end
这意味着例如评论的编辑路径如下所示:/post/21/comment/42/edit
。
当我们在两个模型之间存在许多/属于关系时似乎是有意义的。
但是,一旦你发现帖子的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?