为了更好的阅读体验,欢迎访问 作者博客原文
Route是什么
Rails中URL的约定严格基于RESTful
风格的。客户端的请求其实是在操作一些资源,同一资源的不同的请求动作(GET
, POST
, PUT
, PATCH
, DELETE
)分别对资源进行不同的操作(CRUD)。默认的情况下,我们只需要在routes.rb文件中配置好资源,Rails会为该资源生成7种不同的路由,根据路由就可以将客户端的请求转交给服务端对应的控制器进行处理,然后做出正确的响应。Rails Route能识别这种资源式(RESTful
风格)的路由以及非资源式的路由,它是客户端请求和服务端控制器的粘合剂,能将URL分发给控制器进行处理。
Rails路由有啥用
Rails路由主要有两个作用,首先作为客户端请求和服务端控制器的粘合剂,它负责分发请求,链接URL和Controller。另一个主要作用是动态生成路径和URL。
把URL与代码链接起来
请求GET /articles/17
对应的路由是
get '/articles/:id', to: 'articles#show',
- 这个请求就会被交给
articles
控制器中的show
动作处理,并把{ id: '17' }
传入params
动态生成路径和URL
get '/articles/:id', to: 'articles#show', as: 'article'
在控制器中有
@article = Article.find(17)
视图中有
<%= link_to 'Article Record', article_path(