[RUBY] Wenn die HTTP-Methode nicht angegeben ist, fordert die Browserseite GET an

Umgebung

・ Schienen 6.0.3.2 ・ MySQL Ver 14.14 Distrib 5.6.47 ・ Osx10.15

Einführung

Als ich zum ersten Mal eine Web-App mit Rails erstellte, fragte ich mich, ob "Routing" funktionieren könnte, obwohl die "HTTP-Methode" bei Verwendung von "form_with" oder "link_to" nicht angegeben wurde.

Was ist Routing?

Es verwendet ein URI-Muster und eine HTTP-Methode und ist dafür verantwortlich, anzugeben, welche Aktion ausgeführt werden soll. Daher müssen auf der Browserseite "URI-Muster" und "HTTP-Methode" angegeben werden.

Zum Beispiel

Eine Beschreibung, dass eine bestimmte Aktion verschoben wird, wenn die Detailschaltfläche gedrückt wird (dies ist das Präfix).

<%= link_to 'Einzelheiten', tweet_path(tweet.id), method: :get %>

Toka (dies ist das URI-Muster)

<%= link_to 'Löschen', "/tweets/#{tweet.id}", method: :delete %>

Die HTTP-Methodenspezifikation und das URI-Muster werden in der Methode angegeben:

[Hauptthema] Wenn keine HTTP-Methode angegeben ist

Insbesondere die folgende Beschreibung


<%= link_to 'Einzelheiten', tweet_path(tweet.id) %>

Im Vergleich zum obigen Beispiel funktioniert es ohne method :: get einwandfrei.

Das? Ich habe die HTTP-Methode nicht angegeben. ?? ??

Warum funktioniert es für mich als Anfänger, wenn es keine Bezeichnung gibt? Es war der Moment, in dem ich die Routing-Regeln nicht verstand. .. ..

Fazit

Wenn Sie die "HTTP-Methode" nicht angeben, sendet der Browser standardmäßig eine Anfrage mit "GET" an den Server! Es ist nur eine Browser-Story, unabhängig vom Routing von "Rails". (* Korrigiert durch Hinweis in den Kommentaren)

Selbst wenn Sie es nicht angeben, sendet der Browser ein URI-Muster und eine HTTP-Methode, und eine Aktion funktioniert! !!

Es war ein Gefühl, dass ich als Anfänger nicht ganz verstehen konnte, dass es funktionieren würde, obwohl es nicht spezifiziert war.

Referenz

Schienenführung ・ Https://railsguides.jp/routing.html

Recommended Posts

Wenn die HTTP-Methode nicht angegeben ist, fordert die Browserseite GET an
Einstellungsmethode, die die Größe nicht ändert, auch wenn das CSS geändert wird
Warum die get-Methode in der Calendar-Klasse benötigt wird
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Jetzt ist es an der Zeit, mit der Stream-API zu beginnen
Was tun, wenn die App nicht mit der neuesten Rails-Version erstellt wurde, die bei neuen Rails installiert wurde?
Was ist die Zupfmethode?
Was ist die Initialisierungsmethode?
[Ubuntu 20.04] Was tun, wenn der externe Monitor nicht erkannt wird?
Verwenden Sie den Modifikator # isStatic, um festzustellen, ob die Methode [Reflection] statisch ist.
Selbst wenn method :: delete in der link_to-Methode verwendet wird, wird HTTP zu GET.
Resultsets next () ist keine "Methode, um festzustellen, ob es ein ResultSet next gibt".
Monade ist ein Entwurfsmuster, um "das Vorhandensein von Nebenwirkungen in einer Methode mit einem Rückgabetyp auszudrücken".