加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – rails何时查找Index方法以及何时用于控制器中

发布时间:2020-12-17 01:37:00 所属栏目:百科 来源:网络整理
导读:我是Rails的新手,我一直在关注一个教程. 我一直在摆弄routes.rb,现在完全混淆了它何时寻找show方法以及何时为index方法如果没有明确提到? 解决方法 路线就像类固醇的正则表达式.它们按照定义的顺序具有优先级,并与请求方法,URI和您添加的任何其他约束相匹配
我是Rails的新手,我一直在关注一个教程.

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

解决方法

路线就像类固醇的正则表达式.它们按照定义的顺序具有优先级,并与请求方法,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读