[RUBY] So erstellen Sie eine Route direkt aus der URL, die Sie + α angeben möchten

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.

Fazit

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.

Status

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! !!

Nach der Verbesserung

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.

Nach dieser Erfahrung

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

So erstellen Sie eine Route direkt aus der URL, die Sie + α angeben möchten
So erstellen Sie ein Formular zur Auswahl eines Datums aus dem Kalender
3. Erstellen Sie eine Datenbank für den Zugriff über das Webmodul
So erstellen Sie eine JDBC-URL (Oracle Database, Thin)
So erstellen Sie eine Methode
So erstellen Sie ein Platzhalterteil zur Verwendung in der IN-Klausel
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Wenn Sie den Wortlaut ändern möchten, der angezeigt werden soll, wenn Sie ein Auswahlfeld aus enum erstellen
So erstellen Sie eine JAR-Datei und eine War-Datei mit dem Befehl jar
Wenn Sie die Java-Entwicklungsumgebung von Eclipse aus ändern möchten
So führen Sie das Kotlin Coroutine-Beispiel über die Befehlszeile aus
Ein Memo, wenn Sie den Zeitteil des Kalenders löschen möchten
Zurückgeben eines Werts vom Modell an den Controller mithilfe des [Swift5] -Protokolls
So führen Sie eine GIF-Datei über die Linux-Befehlszeile aus (Ubuntu)
So erstellen Sie ein Maven-Repository für 2020
Herunterladen und Ausführen des Jar-Pakets direkt aus dem Maven-Repository mit nur der Befehlszeile
[Swift5] So erstellen Sie einen Begrüßungsbildschirm
[Rails] So erstellen Sie eine Teilvorlage
[Schienen] So erstellen Sie eine Tabelle, fügen eine Spalte hinzu und ändern den Spaltentyp
Sie können die Version der Projektfacette nicht von einem dynamischen Webmodul in x.x ändern. Wie man damit umgeht
[Spring Boot] So rufen Sie Eigenschaften dynamisch aus einer in einer URL enthaltenen Zeichenfolge ab
So erstellen Sie überall eine H2-Datenbank
[Rails] So erstellen Sie ein Diagramm mit lazy_high_charts
So erhalten Sie einen Heapdump aus einem Docker-Container
So erstellen Sie Pagenationen für das "Kaminari" -Array
So erstellen Sie eine Klasse, die Klasseninformationen erbt
Wenn Sie die Methode außerhalb verwenden möchten
So erstellen Sie ein Thema in Liferay 7 / DXP
[1.] So erstellen Sie ein Spring-MVC-Framework-Projekt
So erstellen Sie einfach ein Pulldown mit Rails
[Rails] So erstellen Sie eine Twitter-Freigabeschaltfläche
[Java] So erhalten Sie die endgültige umgeleitete URL
[Java] So erhalten Sie die URL der Übergangsquelle
So erstellen Sie eine Java-Umgebung in nur 3 Sekunden
[Java] Ich möchte die Differenz zum Datum berechnen
So springen Sie von Eclipse Java zu einer SQL-Datei
Wie schreibe ich Scala aus der Perspektive von Java
Bereitstellen von einem lokalen Docker-Image auf Heroku
[Java] So extrahieren Sie den Dateinamen aus dem Pfad
So erstellen Sie ein Spring Boot-Projekt in IntelliJ
[Spring Boot] So erstellen Sie ein Projekt (für Anfänger)
Was tun, wenn Sie versehentlich ein Modell erstellen?
So erstellen Sie einen Daten-URI (base64) in Java
[Java] So löschen Sie ein bestimmtes Zeichen aus einer Zeichenfolge
So ermitteln Sie die Prefetch-Anforderung (Prefetch) im Browser
So geben Sie den Ressourcenpfad beim HTML-Import an
Installieren Sie MySQL 5.6 unter CentOS6 [So geben Sie die Version an]
Wie erstelle ich einen MOD für Slay the Spire?
[Apple-Abonnementangebot] So erstellen Sie eine Signatur für ein Werbeangebot
Ich möchte eine generische Anmerkung für einen Typ erstellen
Ich möchte der Kommentarfunktion eine Löschfunktion hinzufügen