Ich empfehle, die Schienen oficial guides zu folgen. Es wird als eine gute Vorgehensweise angesehen, Ressourcen nicht mehr als 1 Ebene tief zu verschachteln. Wenn Sie diese Verschachtelungsebene wirklich benötigen, können Sie die Option shallow
verwenden. Auf diese Weise werden zumindest Ihre Routen sauberer. Wie in der Dokumentation festgestellt, oben zitiert:
Eine Möglichkeit, tiefe Verschachtelung zu vermeiden (wie oben empfohlen) wird die Sammlung Aktionen im Rahmen der übergeordneten scoped zu erzeugen, um ein Gefühl der Hierarchie zu bekommen, aber nicht Nest die Mitgliedsaktionen. Mit anderen Worten, nur zu bauen Routen mit der minimalen Menge an Informationen auf einzigartige Weise die Ressource zu identifizieren
Sie könnten so etwas wie dies versuchen:
resources :courses, shallow: true do
resources :sections, shallow: true do
resources :lessons, shallow: true do
resources :sub_lessons
end
end
end
Nur mit diesem ein wenig herumspielen und verwenden rake routes
zu Sehen Sie, wie Ihre Routen aussehen.
Was Sie sich jedoch fragen sollten, ist zum Beispiel, muss ich Lektionen unter Abschnitte geroutet haben? Kann es besser sein, sie zu spalten, so etwas wie:
resources :courses do
resources :sections
end
resources :lessons do
resources :sub_lessons
end
Es hängt alles von dem Bereich, den Sie in welchen Maßnahmen benötigen, beispielsweise wenn bei bestimmten Aktion, die Sie Lektionen auf Kurse basierten beschränken müssen aber nicht in den Abschnitten, dann Sie brauchen nur die Kurs-ID, die als Parameter übergeben wurde.