次のようなルーターがあります。
App.Router.map ->
@resource 'categories', ->
@resource 'category', path: ':category_id', ->
@resource 'composites', ->
@resource 'composite', path: 'composite_id, ->
@resource 'questions', ->
#...
すべての複数ルートには、親に応じてすべてのモデルをロードするモデル フックがあります (すべてのカテゴリをロードするルート リソースを除く)。複合モデルと同様に、フックは のようなことを行いますApp.Composite.find category_id: @modelFor('category').get('id')
。
これは機能していますが、多くの方法を試しても完全に機能させることができないのは、自動リダイレクトです。カテゴリがロードされたら、カテゴリ ルートによってロードされた firstObject を使用してカテゴリ ルートにリダイレクトし、次にコンポジット ルートにリダイレクトしてから、コンポジット ルートにロードされた firstObjevt を使用してコンポジット ルートにリダイレクトするようにしたいと考えています。エンドレベル。
リダイレクト、firstObjectObserver などを使用して部分的に機能するようにしましたが、無限リダイレクトで問題が発生したり、最初のモデルで次のルートにリダイレクトしようとする前にモデルがロードされなかったりすることがよくあります...
そうするためのベストプラクティスは何ですか?ルーターを別の方法で書き直す必要がありますか (モデルが変更される可能性があるため、最終的に最後のレベルに自動的にリダイレクトされる場合でも、各レベルの URL を使用できるようにしたい)? リダイレクトする前に、複数のルート モデルが読み込まれるのをどのように待つ必要がありますか?