2017-10-17 6 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_idがtop_level /:top_level_id/roofsルートパスで利用できないため、彼はどのように関連するmid_levelに戻っていくことができますか?

この種の状況は、単純なシナリオでもすぐに目立つようになります。ユーザが屋根を編集することを決定すると、ルートパスにはroof /:roof_idだけが含まれます。以前のIDが "失われている"場合、top_levelの屋根のインデックス(top_level /:top_level_id/roofs)に戻るためには、どのように適切なリダイレクトを発行できますか?

ありがとうございました!

答えて

2

Roofモデルには、TopLevelにリンクする外部キーが含まれている可能性があります。その場合、データベースから取得されたRoofレコードには、レンダリングされたページで使用できる属性top_level_idがあります。

+0

Ben Y!ありがとうございます。 – Spectator6

関連する問題