簡體   English   中英

軌道中的 2 級嵌套路線

[英]2 levels nested route in rails

我正在嘗試在鐵軌中設置 2 層嵌套路線,其中狗是主人的孩子,而飯菜是狗的孩子。 我可以執行以下操作嗎?

namespace :admin do
      resources :owners do
           resources :dogs
       end 
       resources :dogs do
           resources :meals
       end
end

你會做

namespace :admin do
  resources :owners do
    resources :dogs do
      resources :meals
    end
  end
end

但是為了讓事情不那么混亂, Rails 有一個淺層選項,您可以將其添加到嵌套路由中。 您可能會這樣做的原因是您希望路線僅包含查找記錄所需的信息。 例如,要獲取所有者 1 的狗列表,您的路線將是owners/1/dogs ,但是當您想顯示狗 5 的信息時,即使狗屬於所有者,您也只需要狗的 id 即可識別該唯一記錄1. 如果沒有 shallow 選項,Dog 5 的路線是owners/1/dogs/5 ,但有了它,路線是dogs/5

當您進行多於一層的嵌套時,這將變得特別有用。 在您的情況下,如果狗 5 吃了 6 餐,那么 6 餐的路線將是owners/1/dogs/5/meals/6 ,但是如果使用淺選項,則第 6 餐的路線是meals/6 ,而路線Dog 5 的餐食是dogs/5/meals 在構建路徑時,您會喜歡使用 shallow 選項。

所以用淺的選項,你會做

namespace :admin do
  resources :owners do
    resources :dogs, shallow: true do
      resources :meals, shallow: true
    end
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM