嵌套资源
定义
嵌套资源描述的是一种关联关系。
用法
resources :authors do
resources :books
end
理解
1、内层资源url 全部位于
authors/:author_id/
之下
2、内层资源helper 在原资源名前加author
,如:author_books_path
浅层嵌套
为了避免内层资源,所有路由都寄居于外层资源之下,可以部分嵌套,也就是浅层嵌套。
用法
resources :authors do
resources :books, only: [:index,:new,:create]
end
resources :books, only: [:show,:edit,:update,:delete]
等价写法
resources :authors do
resources :books, shallow: true
end
还可在外层 批量定义
resources :authors, shallow: true do
resources :books
end
命名空间
定义
主要用于与普通路由分开,单独路径,常用于api 或 管理后台 admin
用法
namespace :admin do
resources :users
end
理解
url: 位于
/admin/
下
heper: 再原资源名前加admin
,如:new_admin_user_path
PS: 它还会改变,controller 文件的目录,controllers/admin/users