Ruby on rails 轨道中的两层嵌套路线
我试图在轨道上设置两层嵌套路线,其中狗是主人的孩子,而膳食是狗的孩子。我能做以下事情吗Ruby on rails 轨道中的两层嵌套路线,ruby-on-rails,routes,nested,Ruby On Rails,Routes,Nested,我试图在轨道上设置两层嵌套路线,其中狗是主人的孩子,而膳食是狗的孩子。我能做以下事情吗 namespace :admin do resources :owners do resources :dogs end resources :dogs do resources :meals end end 你会的 namespace :admin do resources :owners do
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
namespace :admin do
resources :owners do
resources :dogs, shallow: true do
resources :meals, shallow: true
end
end
end
但为了减少混乱,可以添加到嵌套管线。您这样做的原因是希望路由只包含查找记录所需的信息。例如,要获取所有者1的狗的列表,您的路径应该是所有者/1/狗
,但是当您想要显示狗5的信息时,您只需要狗的id来识别唯一的记录,即使狗属于所有者1。如果没有浅层选项,狗5的路线是owners/1/dogs/5
,但是有了它,路线是dogs/5
这在进行多个级别的嵌套时特别有用。在您的情况下,如果狗5吃了第6顿饭,那么第6顿饭的路线将是主人/1/dogs/5/膳食/6
,但使用浅层选项,第6顿饭的路线是膳食/6
,而狗5顿饭的路线是狗/5/膳食
。在构建路径时,您会喜欢使用浅层选项
因此,使用浅层选项,您可以
namespace :admin do
resources :owners do
resources :dogs do
resources :meals
end
end
end
namespace :admin do
resources :owners do
resources :dogs, shallow: true do
resources :meals, shallow: true
end
end
end
谢谢你解释这个肤浅的选项。