[RUBY] Prise en compte du routage de la méthode form_with helper

Objectif de ce message ・ Je vais l'écrire en minutes pour noter le fonctionnement des rails. ・ Continuation de [Rails Review 1](https://qiita.com/naoto911/items/f46b35f84cc80f59cac3), [Rails Review 2](https://qiita.com/naoto911/items/f907348510a5dffb0a2f) .. -De plus, puisque j'ai écrit cette fois au stade hypothétique, il y a une possibilité qu'il y ait une erreur de reconnaissance.

Matériel pédagogique utilisé pour l’apprentissage Udemy ["Introduction à Ruby on Rails pour la première fois - Apprenez Ruby et Rails à partir des bases et publiez des applications Web sur le Net"](https://www.udemy.com/course/the-ultimate-ruby-on-rails- J'ai utilisé bootcamp /) comme matériel pédagogique.

○ Comment utiliser form_with

qiita.rb


link_to 'Nom du lien', 'Nom du préfixe+ _path'

・ Crée automatiquement html (crée href) ・ Utilisez principalement les trois

○text_field ⇨ Espace écrit par l'utilisateur ⇨ Décrivez le contenu qui tient sur une ligne

○text_area ⇨ Espace écrit par l'utilisateur ⇨ Décrit en détail par rapport à form_with ○submit ⇨ Traitement lorsque l'utilisateur appuie sur pour accéder à une autre URL, comme un bouton d'envoi ou entrer

ruby:qiita.html.erb


<%= form_with model:@question, local:true do |f| %>

<%= f.text_field :name, class: "form-control" %>

<%= f.text_area :content, class: "form-control" %>

<%= f.submit "Envoyer", class: "btn btn-primary" %>

<% end %>

[Explication] ○form_with model:@question ⇨ L'explication ici est compliquée, je vais donc l'expliquer en détail ci-dessous.

○local:true ⇨ Désactiver le formulaire de communication asynchrone ⇨ Les détails sont inconnus et doivent être étudiés séparément ...

○do |f| ⇨ Stocker les hachages dans @question séparément

○f.text_field :name ⇨ Extraire et afficher la valeur qui frappe: nom des éléments séparés.

○f.text_area :content ⇨ Extraire et afficher la valeur qui frappe: contenu des pièces

○ f.soumettre "soumettre" ⇨ Afficher "Envoyer" sur la touche

[Où spécifiez-vous le chemin après avoir exécuté la méthode d'envoi?]

Les deux choses suivantes sont importantes ici ① La soumission est envoyée par méthode POST </ font> (2) Combien de noms de modèles le formulaire (formulaire_avec la page d'utilisation de la méthode) comprend-il? -S'il n'y a qu'un seul modèle, spécifiez l'URL dans le préfixe qui contient uniquement nom de modèle + s </ font> comme chaîne de caractères. -S'il existe deux modèles ou plus, spécifiez l'URL dans le préfixe qui contient uniquement nom du modèle 1_ nom du modèle 2 + s </ font> sous forme de chaîne de caractères. ・ * (Défini comme nom de modèle 1, nom de modèle 2, ..., nom de modèle n du côté le plus proche de la racine du chemin)

○ Confirmer avec 2 modèles d'exemples pendant le routage comme indiqué ci-dessous

                  Prefix  Verb   URI Pattern                                                                              Controller#Action
             answers_edit GET    /answers/edit(.:format)                                                                  answers#edit
                     root GET    /                                                                                        questions#index
         question_answers GET    /questions/:question_id/answers(.:format)                                                answers#index
                          POST   /questions/:question_id/answers(.:format)                                                answers#create
      new_question_answer GET    /questions/:question_id/answers/new(.:format)                                            answers#new
     edit_question_answer GET    /questions/:question_id/answers/:id/edit(.:format)                                       answers#edit
          question_answer GET    /questions/:question_id/answers/:id(.:format)                                            answers#show
                          PATCH  /questions/:question_id/answers/:id(.:format)                                            answers#update
                          PUT    /questions/:question_id/answers/:id(.:format)                                            answers#update
                          DELETE /questions/:question_id/answers/:id(.:format)                                            answers#destroy
                questions GET    /questions(.:format)                                                                     questions#index
                          POST   /questions(.:format)                                                                     questions#create
             new_question GET    /questions/new(.:format)                                                                 questions#new
            edit_question GET    /questions/:id/edit(.:format)                                                            questions#edit
                 question GET    /questions/:id(.:format)                                                                 questions#show
                          PATCH  /questions/:id(.:format)                                                                 questions#update
                          PUT    /questions/:id(.:format)                                                                 questions#update
                          DELETE /questions/:id(.:format)                                                                 questions#destroy


             answers_edit GET    /answers/edit(.:format)                                                                  answers#edit
                     root GET    /                                                                                        questions#index
         question_answers GET    /questions/:question_id/answers(.:format)                                                answers#index
                          POST   /questions/:question_id/answers(.:format)                                                answers#create
      new_question_answer GET    /questions/:question_id/answers/new(.:format)                                            answers#new
     edit_question_answer GET    /questions/:question_id/answers/:id/edit(.:format)                                       answers#edit
          question_answer GET    /questions/:question_id/answers/:id(.:format)                                            answers#show

○ En supposant que form_with est affiché dans l'URL de / questinos / new (modèle 1)

[À propos de ①] ・ Soumettre est envoyé par la méthode POST -Les candidats de chemin de destination sont réduits à POST parmi Prefixn

                  Prefix  Verb   URI Pattern                                                                              Controller#Action
         question_answers POST   /questions/:question_id/answers(.:format)                                                answers#create
                questions POST   /questions(.:format)                                                                     questions#create

[À propos de ②] ・ Focus sur l'URL de la page où le formulaire est affiché -Form_with est affiché dans l'URL de / questinos / new ・ Comprend une question -Prefix spécifie une URL pour Prefix qui contient uniquement le nom du modèle + s sous forme de chaîne de caractères ・ Par conséquent, spécifiez les questions


○ On suppose que form_with est affiché dans l'URL de / questions /: questions / id / answers / new (Pattern 2)

[À propos de ①] ・ Similaire au modèle 1, affiner par la méthode POST

[À propos de ②] ・ Focus sur l'URL de la page où le formulaire est affiché -Form_with est affiché dans l'URL de / questions /: questions_id / answers / new ・ Deux modèles sont inclus, question et réponse. -Pour Préfixe, spécifiez l'URL du Préfixe qui contient uniquement le nom du modèle 1_nom du modèle 2 + s sous forme de chaîne de caractères. ・ Par conséquent, spécifiez question_answers


○ Autres hypothèses ・ Les deux exemples ci-dessus sont tous expliqués en se concentrant sur form_with à partir de l'action #new. -En fait, form_with est également utilisé à partir de l'action #edit. ・ Cependant, si vous jugez par la logique ci-dessus, Tsuji correspondra.

○ Résumé ・ Résumé de la façon de déterminer l'url de destination de form_with -L'explication ci-dessus suppose un type dit imbriqué dans lequel les modèles sont imbriqués. ・ L'imbrication sera résumée séparément à une date ultérieure.