2018-08-16-嵌套资源 与 命名空间

嵌套资源

定义

嵌套资源描述的是一种关联关系。

用法
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

你可能感兴趣的:(2018-08-16-嵌套资源 与 命名空间)