・ Rails 6.0.3.2 ・ Mysql Ver 14.14 Distrib 5.6.47 ・ Osx10.15
Lorsque je créais une application Web pour la première fois avec Rails, je me demandais si le routage
pouvait fonctionner même si la méthode HTTP
n'était pas spécifiée lors de l'utilisation de form_with
ou link_to
.
Il prend un ʻURI Patternet une
méthode HTTP et est responsable de spécifier l'action à entreprendre. Par conséquent, il est nécessaire de spécifier ʻURI Pattern
et HTTP method
du côté du navigateur.
Une description qu'une certaine action se déplace lorsque le bouton de détail est enfoncé (c'est Préfixe)
<%= link_to 'Détails', tweet_path(tweet.id), method: :get %>
Toka (c'est le modèle URI)
<%= link_to 'Effacer', "/tweets/#{tweet.id}", method: :delete %>
La spécification de méthode HTTP et le ʻURI Patternsont spécifiés dans
method:`
Plus précisément, la description suivante
<%= link_to 'Détails', tweet_path(tweet.id) %>
Comparé à l'exemple ci-dessus, cela fonctionne bien sans method :: get
.
cette? Je n'ai pas spécifié la méthode HTTP? ?? ??
Pour moi en tant que débutant, pourquoi ça marche quand il n'y a pas de désignation? C'était le moment où je ne comprenais pas les règles de routage. .. ..
Si vous ne spécifiez pas la méthode HTTP
, le navigateur enverra une requête au serveur avec GET
par défaut!
C'est juste une histoire de navigateur, quel que soit le routage des «Rails».
(* Corrigé en rappelant dans les commentaires)
Donc, même si vous ne le spécifiez pas, le navigateur enverra ʻURI Patternet
HTTP method`, et une action fonctionnera! !!
C'était un sentiment que moi, un débutant, je ne pouvais pas tout à fait comprendre que cela fonctionnerait même si ce n'était pas spécifié.
Routage des rails ・ Https://railsguides.jp/routing.html
Recommended Posts