Guten Abend Aloha Mann, Yasunori!
Heute habe ich Probleme damit, das Routing beim Erstellen eines Portfolios zu beschreiben. Deshalb schreibe ich es als Memorandum für diejenigen auf, die unter dem gleichen Problem leiden oder wenn ich es vergesse.
Es ist lange her, also werde ich zuerst die Schlussfolgerung veröffentlichen.
Wenn Sie nicht möchten, dass die URL der Seite, die beim Drücken der Suchtaste aufgerufen wird, unter der Kontrolle des Controllers steht,
config/routes.rb
Rails.application.routes.draw do
get '/:name', to: 'Controller-Name#edit'
end
Und es ist okay! !!
↓ Klicken Sie hier als Referenzseite Rails-Dokumentrouting [Routendesign] So wechseln und zeigen Sie mehrere Ansichten mit einer Aktion an
Na dann werde ich weiter unten ausführlich schreiben.
Ich wollte eine Funktion erstellen, die zur Suchseite für Hotelkategorien übergeht, wenn ich auf der oberen Seite auf die Schaltfläche __ "Hotel" __ drücke, aber ich wollte, dass die URL die Form "localhost: 3000 / hotel" hat. Zuerst habe ich jeden Controller separat erstellt und im Routing beschrieben.
config/routes.rb
Rails.application.routes.draw do
resources :hotels, only [:index]
end
Dann
hotels GET /hotels(.:format) hotels#index
Das Routing wurde erstellt.
Damit könnte die URL in einer Form realisiert werden, die der gewünschten nahe kommt. Je mehr Elemente vorhanden sind, desto mehr muss ein separater Controller erstellt werden.
Das heißt, Sie müssen nur den aufgerufenen Controller ändern! ich dachte
config/routes.rb
Rails.application.routes.draw do
resources :hotels, only [:index], controller: 'experiences'
end
Auf diese Weise wird beim Zugriff die "Experience Controller Index-Aktion" aufgerufen. Ich denke, dass die Ansichtsdatei mithilfe einer Vorlagendatei usw. angezeigt werden kann. In diesem Fall wird jedoch nichts beschrieben Sie haben einen fehlenden "Hotelcontroller". Dieses Mal schreibe ich eine, aber wenn die Anzahl der Elemente zunimmt, nimmt die Anzahl der Routing-Beschreibungen und die Anzahl der Dateien zu.
Ich habe mich gefragt, was passiert ist ... und herausgefunden, dass ich verschiedene Dinge erforscht habe! !! Zunächst, wenn Sie die URL angeben möchten
config/routes.rb
Rails.application.routes.draw do
get '/hotel', to: 'experiences#index'
end
Es war in Ordnung, nur zu schreiben! !!
Dies wurde auf der Routing-Seite der Rails-Dokumentation erwähnt.
Ich erkannte wieder einmal, wie wichtig es ist, die Dokumente genau zu prüfen ...
Übrigens hat dies allein das ursprüngliche Ziel erreicht, "die URL auf" localhost: 3000 / hotel "zu setzen". Wenn sie jedoch unverändert bleibt, wird die Seite nicht nur "/ hotel", sondern auch andere Elemente vergrößert. Zu diesem Zeitpunkt wird die Anzahl der Beschreibungen stetig zunehmen. Es ist eine große Sache, also lasst uns das auch verbessern! !!
Sie können eine neue "Bearbeitungsaktion" im "Erfahrungs-Controller" definieren und so zusammenstellen, dass das gesamte Routing dorthin geht! !!
controllers/experiences_controller.rb
class ExperiencesController < ApplicationController
def edit
render "/#{params[:name]}"
end
end
config/routes.rb
Rails.application.routes.draw do
get '/:name', to: 'experiences#edit'
end
Wenn Sie im Abschnitt "/: name" der URL beim Senden der Anforderung ": name" auf den Schlüssel in den Parametern setzen und den Dateinamen der Teilvorlage als Wert übergeben, wird das "Rendern in der" Bearbeitungsaktion "ausgeführt Die entsprechende Ansichtsdatei wird mit der Methode `angezeigt.
Ich kann spüren, wie wichtig es ist, die offiziellen Dokumente zu lesen, und wie dankbar die Dokumente sind, die meine Vorgänger hinterlassen haben ...
Wenn Sie irgendwelche Probleme haben, würde ich gerne weiter nachforschen! !! (Es fühlt sich an wie eine andere Kraftanwendung, aber ist es okay ...)
Recommended Posts