[英]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.