Ruby on Rails中,何时以及如何使用Index方法与show方法在控制器中实现长尾查询?

2026-04-10 07:291阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

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

Ruby on Rails中,何时以及如何使用Index方法与show方法在控制器中实现长尾查询?

我是Rails的新手,一直在关注一个教程。我一直在调整`routes.rb`文件,现在完全混乱了。何时寻找`show`方法以及何时为`index`方法,如果没有明确指出呢?路线就像粘稠的正则表达式。它们按照定义来匹配。

我是Rails的新手,我一直在关注一个教程.

我一直在摆弄routes.rb,现在完全混淆了它何时寻找show方法以及何时为index方法如果没有明确提到?

Ruby on Rails中,何时以及如何使用Index方法与show方法在控制器中实现长尾查询?

路线就像类固醇的正则表达式.它们按照定义的顺序具有优先级,并与请求方法,URI和您添加的任何其他约束相匹配.

get '/posts', to: 'posts#index' get '/posts/:id', to: 'posts#show'

与上述路由的关键区别在于请求uri的路径必须匹配的正则表达式是不同的. ‘/ posts /:id’包含一个匹配的命名段:

GET /posts/11 GET /posts/gobligook

但不是:

GET /posts GET /posts/1/foo GET /posts/foo/bar

完整的传统CRUD动词集是:

get '/posts', to: 'posts#index' # all posts get '/posts/new', to: 'posts#new' # form to create a post post '/posts', to: 'posts#create' # create a post from a form submission get '/posts/:id', to: 'posts#show' # show a single post get '/posts/:id/edit', to: 'posts#edit' # form to edit a post put '/posts/:id', to: 'posts#update' # for legacy compatibility patch '/posts/:id', to: 'posts#update' # update a post from a form submission delete '/posts/:id', to: 'posts#destroy' # delete a post

在Rails flavor REST中,动作是从路径和方法隐式派生的.
只有用于呈现表单的new和edit方法实际上是在路径中显式添加操作 – 这是因为它们作用于集合或集合的成员.

请注意,’/ posts / new’路由必须在get’/ posts /:id’之前声明,否则show route将首先匹配请求(路由按照定义的顺序具有优先级).这不适用于获取’/ posts /:id / edit’,因为模式不同.

当然输入所有这些路线真的很乏味,所以rails提供resources macro为你做这个:

resources :posts

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

Ruby on Rails中,何时以及如何使用Index方法与show方法在控制器中实现长尾查询?

我是Rails的新手,一直在关注一个教程。我一直在调整`routes.rb`文件,现在完全混乱了。何时寻找`show`方法以及何时为`index`方法,如果没有明确指出呢?路线就像粘稠的正则表达式。它们按照定义来匹配。

我是Rails的新手,我一直在关注一个教程.

我一直在摆弄routes.rb,现在完全混淆了它何时寻找show方法以及何时为index方法如果没有明确提到?

Ruby on Rails中,何时以及如何使用Index方法与show方法在控制器中实现长尾查询?

路线就像类固醇的正则表达式.它们按照定义的顺序具有优先级,并与请求方法,URI和您添加的任何其他约束相匹配.

get '/posts', to: 'posts#index' get '/posts/:id', to: 'posts#show'

与上述路由的关键区别在于请求uri的路径必须匹配的正则表达式是不同的. ‘/ posts /:id’包含一个匹配的命名段:

GET /posts/11 GET /posts/gobligook

但不是:

GET /posts GET /posts/1/foo GET /posts/foo/bar

完整的传统CRUD动词集是:

get '/posts', to: 'posts#index' # all posts get '/posts/new', to: 'posts#new' # form to create a post post '/posts', to: 'posts#create' # create a post from a form submission get '/posts/:id', to: 'posts#show' # show a single post get '/posts/:id/edit', to: 'posts#edit' # form to edit a post put '/posts/:id', to: 'posts#update' # for legacy compatibility patch '/posts/:id', to: 'posts#update' # update a post from a form submission delete '/posts/:id', to: 'posts#destroy' # delete a post

在Rails flavor REST中,动作是从路径和方法隐式派生的.
只有用于呈现表单的new和edit方法实际上是在路径中显式添加操作 – 这是因为它们作用于集合或集合的成员.

请注意,’/ posts / new’路由必须在get’/ posts /:id’之前声明,否则show route将首先匹配请求(路由按照定义的顺序具有优先级).这不适用于获取’/ posts /:id / edit’,因为模式不同.

当然输入所有这些路线真的很乏味,所以rails提供resources macro为你做这个:

resources :posts