2016-03-25 9 views
0

レールアプリケーションでこれらの非常に長いルートをどのように短くすることができますか?レールルートを短縮する

# routes.rb 

    resources :courses do 
    resources :sections do 
     resources :lessons do 
     resources :sub_lessons 
     end 
    end 
    end 

答えて

1

レールoficial guidesに従うことをお勧めします。 1レベル以上深くリソースを入れ子にするのは避けることをお勧めします。つまり、このレベルの入れ子が本当に必要な場合は、shallowオプションを使用できます。少なくともあなたのルートはよりきれいになります。

深いネストを避けるための1つの方法は、親の下にスコープされたコレクションアクションを生成して、階層の感覚を得ることですが、ネストしないようにすることですメンバーの行動。

resources :courses, shallow: true do 
    resources :sections, shallow: true do 
    resources :lessons, shallow: true do 
     resources :sub_lessons 
    end 
    end 
end 

ちょうどこの少しで遊んでとにrake routesを使用します。言い換えれば、唯一のユニークなリソースを識別するための最小限の情報でルートを構築するために

あなたはこのような何かを試みることができますあなたのルートがどのように見えるかを見てください。

しかし、あなた自身に尋ねるべきことは、たとえば、セクションの下にレッスンをルーティングする必要があるかどうかです。そして、特定のアクションであなたはセクションのコースではなく、に基づいて授業を制限する必要があれば、すべては、たとえば、あなたはどのようなアクションに必要な範囲に依存

resources :courses do 
    resources :sections 
end 

resources :lessons do 
    resources :sub_lessons 
end 

:、それらを分割するようなもの、その方が良いかもしれあなたはパラメータとして渡されたコースIDだけを必要とします。