1.使用淺

避免深度巢狀的一種方法(如上所述)是生成在父級下作用域的集合操作,以便了解層次結構,但不巢狀成員操作。換句話說,僅構建具有最少量資訊的路由以唯一地標識資源,如下所示:

resources :articles, shallow: true do
  resources :comments
  resources :quotes
  resources :drafts
end

DSL 的淺層方法建立了一個範圍,其中每個巢狀都是淺的。這會生成與上一個示例相同的路由:

shallow do
  resources :articles do
    resources :comments
    resources :quotes
    resources :drafts
  end
end

範圍有兩種選項可以自定義淺層路由。 :shallow_path 為具有指定引數的成員路徑新增字首:

scope shallow_path: "sekret" do
  resources :articles do
    resources :comments, shallow: true
  end
end

使用 Rake Command 獲取生成的路由,如下所示:

rake routes