[RUBY] Si la méthode HTTP n'est pas spécifiée, le côté navigateur demande avec GET

environnement

・ Rails 6.0.3.2 ・ Mysql Ver 14.14 Distrib 5.6.47 ・ Osx10.15

introduction

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.

Qu'est-ce que le routage

Il prend un ʻURI Patternet unemé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.

Par exemple

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 dansmethod:`

[Objet principal] Lorsque la méthode HTTP n'est pas spécifiée

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

Conclusion

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 PatternetHTTP 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é.

référence

Routage des rails ・ Https://railsguides.jp/routing.html

Recommended Posts

Si la méthode HTTP n'est pas spécifiée, le côté navigateur demande avec GET
Méthode de réglage qui ne change pas la taille même si le CSS est changé
Pourquoi la méthode get est nécessaire dans la classe Calendar
[Rails] Que faire si vous ne pouvez pas obtenir de message d'erreur avec la méthode des erreurs
Il est maintenant temps de commencer avec l'API Stream
Que faire si l'application n'est pas créée avec la dernière version de Rails installée lorsque les rails sont neufs
Quelle est la méthode pluck?
Quelle est la méthode d'initialisation?
[Ubuntu 20.04] Que faire si le moniteur externe n'est pas reconnu
Utilisez Modifier # isStatic pour déterminer si la méthode [Reflection] est statique.
Même si method :: delete dans la méthode link_to, HTTP devient GET.
Next () de Resultset n'est pas une "méthode pour déterminer s'il y a un ResultSet next".
Monad est un modèle de conception pour "exprimer l'existence d'effets secondaires dans une méthode avec un type de retour"