再看一下之前我们创建的这个 photos 类型的资源路由 ... 它会自动给我们生成一些路由,这些路由可以读取,创建,更新,还有删除资源 ... CRUD 这个词指的就是 Create,Read,Update,还有 Delete ...
Verb 这栏的内容对应的就是使用的 HTTP 的动作 ... URI Pattern 是地址模式 .. Controller#Action 就是处理请求使用的控制器还有对应的动作,这个 Action 指的就是在控制器里定义的方法 ..
get '/photos'
比如这条路由,如果使用 HTTP 的 GET 方法,请求的地址模式是 /photos ,这种请求应用会交给 photos 控制器的 index 方法去处理, # 号前面的是控制器,后面的部分是控制器里的方法 ...
在这个 index 方法里,你可以返回资源的列表 ... 比如这里就可以是一个照片列表 ...
post '/photos'
下面这条,Verb 是 Post,意思就是如果使用 HTTP 的 POST 方法请求这个 /photos 地址的话 .. 这种请求会用 photos 控制器的 create 方法去处理 ..
在这个 create 控制器方法里,你可以把用户发送过来的数据存储到数据库里 ... create 表示的就是创建资源 ... 这个路由跟上面这条路由使用的地址模式都是 /photos ,但是处理的请求方法是不一样的 ... 一个处理的是 get /photos ,一个处理的是 post /photos ..
get '/photos/new'
下面这个路由处理的 HTTP 方法也是 GET,地址是 /photos/new ,用的是 photos 控制器的 new 方法来处理 ... 这个路由应该为用户返回一个创建资源用的页面 ... 比如一个表单,上面列出资源需要的各种东西,用户可以在上面填写具体的内容 ...
get '/photos/:id/edit'
下面这条路由的地址是 /photos/:id/edit ... 这个地址里的 :id 表示的某个资源的 id 号 ... 使用 GET 方法请求这个地址的时候,会用 photos 的 edit 动作处理 ... 它要做的事情就是为用户提供一个可以编辑某个具体的资源的页面,在这个页面上可以有一个编辑资源用的表单,表单上已经预先填写好了资源现有的内容 ...
比如在访问 /photos/1/edit 这个地址的时候,显示的就是一个编辑 id 号是 1 的这个照片资源的页面 ...
get '/photos/:id'
显示某个具体的资源用的是下面这条路由 ... HTTP 动作是 GET,地址是 /photos/:id .. :id 表示的就是某个具体的资源 .. 处理这种请求的控制器是 photos ,动作是 show ... 在这个动作里,你可以用到地址里的 :id 的值,然后到模型那里提取这个资源的内容 ...
PATCH,PUT
下面这两个路由处理是更新资源的请求 ... 如果用 PATCH 或者 PUT 方法请求 /photos/:id 这种地址模式的话,都会使用资源控制器里的 update 动作来处理,你可以在这个动作里得到用户提交的更新请求带着的要更新的数据,把它们可以放到应用的数据库 ..
DELETE
最后这条路由处理的是使用 HTTP 的 DELETE 方法发出的请求,地址是 /photos/:id ,它表示某个具体的资源,处理请求用的是资源控制器的 destroy 动作,在这个动作里,你可以把用户想要删除的资源从数据库里删除掉 ...