2016-03-25 10 views
0

Wie kann ich diese extrem langen Strecken in meiner Schienenanwendung verkürzen?Schienen verkürzen Routen

# routes.rb 

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

Antwort

1

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.