2017-10-17 1 views
0

Wenn eine Anwendung seichtes Routing berücksichtigt, bei dem die Ressourcen abgeschnitten werden, während sie durchlaufen werden, wie kann auf Objekte zugegriffen werden, auf die zuvor zugegriffen wurde? Benötigt es tief verschachtelte Routen?Traversieren durch flach verschachtelte Ressourcen?

Zum Beispiel, sagen wir so etwas wie

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

haben Und nehmen wir an, dass jeder Keller mehrere mid_levels usw.

mehrere lower_levels und jeder lower_level hat Sobald der Benutzer den unteren Ebenen klickt und kommt schließlich auf dem Dach an, wie kann er zurück zu sagen, die zugehörige mid_level da die: mid_level_id ist nicht verfügbar in top_level /: top_level_id/dächer route pfad?

Diese Situation macht sich auch in eher einfachen Szenarien sofort bemerkbar ... Sobald der Benutzer sich entscheidet, ein Dach zu bearbeiten, enthält der Routenpfad nur Dach /: roof_id. Wie kann eine korrekte Weiterleitung ausgegeben werden, um zum Index der top_level Dächer (dh top_level /: top_level_id/dächer) zurückzukehren, wenn die vorherigen IDs "verloren" sind?

Vielen Dank für Ihre Hilfe!

Antwort

2

Vermutlich hat Ihr Roof Modell einen Fremdschlüssel, der es mit der TopLevel verbindet. Wenn dies der Fall ist, hat der Datensatz Roof, der aus der Datenbank abgerufen wird, ein Attribut top_level_id, das in der gerenderten Seite verwendet werden kann.

+0

Danke Ben Y! – Spectator6

Verwandte Themen