2017-10-17 55 views
0

如果一個應用程序承認淺層路由,這會在資源遍歷時截斷資源,那麼以前訪問的對象如何能夠返回到?它是否需要深層嵌套的路線?通過淺層嵌套資源遍歷備份?

例如,假設我們有一些像

resources :basement, shallow: true do 
    resources :lower_level do 
    resources :mid_level do 
     resources :top_level do 
     resources :roof do 
     end 
    end 
    end 
end 

而且我們假定每個地下室有多個lower_levels每個lower_level有多個mid_levels等

一旦用戶點擊通過較低的水平,最終到達屋頂,他如何能夠返回到相關的mid_level,因爲:mid_level_id在top_level /:top_level_id/roofs route路徑中不可用?

即使在相當簡單的情況下,這種類型的情況也會立即引起注意......一旦用戶決定編輯屋頂,路徑路徑只包含roof /:roof_id。如果以前的ID是「丟失」,如何發佈適當的重定向以返回top_level的屋頂索引(即top_level /:top_level_id/roofs)?

謝謝你的幫助!

回答

2

推測你的Roof模型有一個外鍵將其鏈接到TopLevel。如果是這樣,則從數據庫中提取的Roof記錄具有可用於渲染頁面的屬性top_level_id

+0

謝謝你本Y! – Spectator6