在ruby-on-rails的RESTful路由中,控制器名称是否必须指定?

更新于
2026-10-10 00:10:05
1阅读来源:SEO资讯
  • 内容介绍
  • 相关推荐

本文共计430个文字,预计阅读时间需要2分钟。

在ruby-on-rails的RESTful路由中,控制器名称是否必须指定?

使用标准的map.resource路由机制和几个嵌套资源,生成的路由无需过长。以下是一个示例:

rubyRails.application.routes.draw do resources :users do resources :blogs endend

这将创建以下路由:

在ruby-on-rails的RESTful路由中,控制器名称是否必须指定?

- GET /users/:user_id/blogs- POST /users/:user_id/blogs- GET /users/:user_id/blogs/:id- PUT /users/:user_id/blogs/:id- DELETE /users/:user_id/blogs/:id

我相信这遵循了某种有益的路线。

使用标准的map.resource路由机制和几个嵌套资源,生成的路由不必要地长.请考虑以下路线:

site.org/users/pavelshved/blogs/blogging-horror/posts/12345

在routes.rb中创建很容易,我确信它遵循某种有益的路由逻辑.但它太长了,似乎也不是人类可读的.

一个很好的改进是删除控制器名称,所以它看起来像:

site.org/pavelshved/blogging-horror/12345

清晰,简单,简短.它可能变得模棱两可,但在我的情况下,我不打算给任何用户“用户”命名.

我尝试过设置:as => ”,但它产生这样的路线:site.org//pavelshved//blogging-horror//12345由标准助手生成它们.

有没有办法以这种方式映射资源,控制器名称变成可选的?

您正在寻找资源的:path_prefix选项.

map.resources :users do |user| user.resources :blogs do |blog| blog.resources :posts, :path_prefix => '/:user_login/:blog_title/:id' end end

将为此表格的所有博客生成宁静的路线:site.org/pavelshved/bogging-horror/posts/1234.你需要付出额外的努力才能使用url helper,但是你自己的包装器无法快速修复.

摆脱url的帖子部分的唯一方法是使用命名路由,但这些需要一些重复才能使其变得安静.在尝试使用路径助手时,您会遇到同样的问题.

本文共计430个文字,预计阅读时间需要2分钟。

在ruby-on-rails的RESTful路由中,控制器名称是否必须指定?

使用标准的map.resource路由机制和几个嵌套资源,生成的路由无需过长。以下是一个示例:

rubyRails.application.routes.draw do resources :users do resources :blogs endend

这将创建以下路由:

在ruby-on-rails的RESTful路由中,控制器名称是否必须指定?

- GET /users/:user_id/blogs- POST /users/:user_id/blogs- GET /users/:user_id/blogs/:id- PUT /users/:user_id/blogs/:id- DELETE /users/:user_id/blogs/:id

我相信这遵循了某种有益的路线。

使用标准的map.resource路由机制和几个嵌套资源,生成的路由不必要地长.请考虑以下路线:

site.org/users/pavelshved/blogs/blogging-horror/posts/12345

在routes.rb中创建很容易,我确信它遵循某种有益的路由逻辑.但它太长了,似乎也不是人类可读的.

一个很好的改进是删除控制器名称,所以它看起来像:

site.org/pavelshved/blogging-horror/12345

清晰,简单,简短.它可能变得模棱两可,但在我的情况下,我不打算给任何用户“用户”命名.

我尝试过设置:as => ”,但它产生这样的路线:site.org//pavelshved//blogging-horror//12345由标准助手生成它们.

有没有办法以这种方式映射资源,控制器名称变成可选的?

您正在寻找资源的:path_prefix选项.

map.resources :users do |user| user.resources :blogs do |blog| blog.resources :posts, :path_prefix => '/:user_login/:blog_title/:id' end end

将为此表格的所有博客生成宁静的路线:site.org/pavelshved/bogging-horror/posts/1234.你需要付出额外的努力才能使用url helper,但是你自己的包装器无法快速修复.

摆脱url的帖子部分的唯一方法是使用命名路由,但这些需要一些重复才能使其变得安静.在尝试使用路径助手时,您会遇到同样的问题.