知识点 member do

2.10 添加更多的 REST 架构动作
可用的路由并不局限于 REST 路由默认创建的那七个,还可以添加额外的集合路由或成员路由。

2.10.1 添加成员路由

要添加成员路由,在 resource 代码块中使用 member 块即可:

resources :photos do
member do
get 'preview'
end
end
这段路由能识别 /photos/1/preview 是个 GET 请求,映射到 PhotosController 的 preview 动作上,资源的 ID 传入 params[:id]。同时还生成了 preview_photo_url 和 preview_photo_path 两个帮助方法。

在 member 代码块中,每个路由都要指定使用的 HTTP 方法。可以使用 get,patch,put,post 或 delete。如果成员路由不多,可以不使用代码块形式,直接在路由上使用 :on 选项:

resources :photos do
get 'preview', on: :member
end
也可以不使用 :on 选项,得到的成员路由是相同的,但资源 ID 存储在 params[:photo_id] 而不是 params[:id] 中。

参考: http://guides.ruby-china.org/routing.html

Comments

comments powered by Disqus