1

我正在用 Rails 写博客,我已经完成了一半。在为一篇文章实现编辑和删除评论时,我不知何故被路由卡住了。我有3个具体的疑问。

1)。要获得这种(http://localhost:3000/articles/54/comments/56/edit)博客网址,我是否需要遵循嵌套路由。我是说

 resources :articles do
    resources :comments
  end

2)我可以在没有嵌套路由的情况下获得这种 url 吗?如果是,请给出一些解释。

3)目前,我正在尝试实现嵌套路由(您的回复后可能会更改)。对于这种路由,我是否需要在视图的“文章”文件夹中创建“评论”文件夹?或者我可以直接在视图文件夹下创建“评论”文件夹以使嵌套路由正常工作。

谢谢你的时间。

4

1 回答 1

4

要获得这种博客网址,我是否需要遵循嵌套路由。

不,您可以使用该方法match自己创建任何路线。

我可以在没有嵌套路由的情况下获得这种 url 吗?如果是,请给出一些解释。

用方法match

match 'articles/:article_id/comments/:id/edit' => 'comments#edit'

Rails 指南中的更多信息

目前,我正在尝试实现嵌套路由(您的回复后可能会更改)。对于这种路由,我是否需要在视图的“文章”文件夹中创建“评论”文件夹?或者我可以直接在视图文件夹下创建“评论”文件夹以使嵌套路由正常工作。

对于嵌套路由,您不应更改 Rails 的标准文件夹结构 - 也就是说,comments 文件夹应该在 views 文件夹下,而不是在 comments 文件夹下。我知道何时应该在视图/控制器/模型目录中嵌套文件夹的唯一时刻是当您使用namespace.

编辑:

您应该查看应用程序的语义来决定是否需要嵌套资源。如果您在评论中执行的 CRUD 操作与帖子相关,那么您应该保留嵌套资源,否则不要。

在这种情况下,我清楚地看到了一个嵌套资源。

于 2013-04-26T19:53:16.277 回答