Ich kann nicht verstehen, was der Unterschied zwischen einem Namespace und einem Bereich beim Routing von Ruby-on-Rails 3 ist.
Könnte jemand bitte erklären?
namespace "admin" do
resources :posts, :comments
end
scope :module => "admin" do
resources :posts, :comments
end
ruby-on-rails
Never_had_a_name
quelle
quelle
Beispiele helfen mir immer, also hier ein Beispiel:
gibt uns folgende Routen:
Scope verwenden ...
Wird uns geben:
Hier ist eine gute Lektüre zu diesem Thema: http://edgeguides.rubyonrails.org/routing.html#controller-namespaces-and-routing
quelle
von der Schienenführung
„Der Namespace - Rahmen wird automatisch hinzufügen
:as
sowie:module
und:path
Präfixe.“so
ist das gleiche wie
quelle
Sowohl der Gültigkeitsbereich als auch der Namespace umfassen eine Reihe von Routen zu den angegebenen Standardoptionen.
Außer , dass es keine Standardoptionen für Umfang und für Namespace
:path
,:as
,:module
,:shallow_path
und:shallow_prefix
alle Optionen standardmäßig auf den Namen des Namespace.Die verfügbaren Optionen für Bereich und Namespace entsprechen denen der Übereinstimmung .
quelle
Der Bereich ist etwas komplex, bietet jedoch mehr Optionen, um genau das zu optimieren, was Sie tun möchten.
Der Bereich unterstützt drei Optionen: Modul, Pfad und as . Wenn Sie den Gültigkeitsbereich mit allen it-Optionen sehen, entspricht er genau dem Namespace.
Mit anderen Worten, Routen generiert von
ist das gleiche wie
Mit anderen Worten, wir können sagen, dass es im Vergleich zum Namespace keine Standardoptionen für den Gültigkeitsbereich gibt . Namespace fügt standardmäßig alle diese Optionen hinzu. Mit Scope können wir die Routen nach Bedarf genauer einstellen.
Wenn Sie sich eingehend mit dem Standardverhalten von Bereich und Namespace befassen, werden Sie feststellen, dass der Bereich standardmäßig nur die Option " Pfad " unterstützt, wobei der Namespace drei Optionsmodule unterstützt : " Pfad" und " Standard".
Weitere Informationen finden Sie in einem Dokument- Namespace und -Routing .
quelle