[RUBY] [Rails] Articles pour les débutants pour organiser et comprendre le flux de form_with

introduction

Au début de l'apprentissage de Rails, je ne pouvais pas comprendre le flux de form_with, donc je vais le résumer. Rails 5.2.4.

Résumé d'abord

Je suis sûr qu'il y a des gens qui disent: "Rassemblez-vous vite!", Donc je vais d'abord résumer le flux. スクリーンショット 2020-06-02 1.08.39.png

Bref commentaire

Il existe un modèle User et un modèle Post.

** ① Affichez la page d'affichage (new.html.erb) avec la nouvelle action ** Lorsqu'une demande d'appeler la nouvelle action est effectuée, la nouvelle page de publication du message s'affiche en premier. ※image 73ee6ee22fb145fb7034907eef85317e.png

** ② Passez l'instance @ post créée par la nouvelle action à la vue **

post_controller.rb


class PostsController < ApplicationController
~~
  def new
    @post = Post.new #Généré ici@le post est nouveau.html.Passé à erb
  end
~~

** ③ Entrez une valeur dans les propriétés de l'instance et soumettez ** f3253df790131a6ac795eeff52d4ee5d.gif

** ④ Appelez l'action de création ** Comme vous pouvez le voir dans l'image ci-dessus, lorsque vous cliquez sur le bouton soumettre (soumettre form_with), form_with appellera l'action de création.

  • La méthode d'assistance form_with est un enfant pratique qui examine les propriétés de l'instance passée (@ post dans ce cas) et décide s'il faut ignorer la création ou la mise à jour.

form_avec c'est penser


- @le message est vide → Je le fais pour la première fois Alors créez!
- @le message n'est pas vide → je veux le changer! Alors mettez à jour!

** ⑤ Appelez la méthode post_params **

post_controller.rb


class PostsController < ApplicationController
~~
  def create
    #L'action de création est appelée et Post.create(post_params)Est exécuté → post_params est appelé
    Post.create(post_params) 
    redirect_to root_path
  end

  private
  def post_params 
    params.require(:post).permit(:title, :content).merge(user_id: current_user.id)
  end
~~

** ⑥ Parmi les valeurs reçues par params, spécifiez la valeur reçue par permit (permit) **

État de la valeur reçue par les paramètres


[1] pry(#<PostsController>)> params
=> <ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"oLGgLMTcqSPi7cbK9j1wFhH5rqiwXYO7GyRoZcZFZe6Y5VdbHrWCOyeo37kgW/bsl+eANQrz7p/lAzZMnAS8Gg==", 
"post"=>{"title"=>"Ce que j'ai appris aujourd'hui", "content"=>"form_avec est un enfant sage!"}, 
"commit"=>"Publier", "exept"=>:index, "controller"=>"posts", "action"=>"create"} permitted: false>

Comme il est difficile de le voir, la ligne saute à une position qui n'est pas initialement prévue, mais elle est généralement renvoyée sur une ligne.

" post "=> {" title "=>" Ce que j'ai appris aujourd'hui "," content "=>" form_with est un enfant sage! "}, Est la valeur gérée par post_params.

Si vous n'autorisez pas les valeurs reçues par permit, des valeurs involontaires peuvent être stockées dans la table, il est donc presque obligatoire de les spécifier.

** ⑦ Créer un message avec la valeur post_params (enregistré avec succès dans le tableau) ** La valeur retournée par la méthode post_params sera utilisée pour Post.create, donc Il est dans le même état que ci-dessous.

  def create
    Post.create(title: "Ce que j'ai appris aujourd'hui", content: "form_avec est un enfant sage!", user_id: 1) 
    redirect_to root_path
  end

Après avoir confirmé ce flux, si vous regardez à nouveau l'image au début, vous approfondirez votre compréhension!

en conclusion

Les différences entre form_tag et form_for sont résumées dans cet article. Comment écrire form_with / form_for / form_tag dans [Rails] haml

Je vous serais reconnaissant si vous pouviez signaler des erreurs.

Recommended Posts

[Rails] Articles pour les débutants pour organiser et comprendre le flux de form_with
[Pour les débutants] DI ~ Les bases de DI et DI au printemps ~
[Pour les débutants] Comprendre rapidement les bases de Java 8 lambda
Explication de Ruby on rails pour les débutants ④ ~ À propos des règles de dénomination et comment utiliser form_Tag ~
[Pour les débutants Swift] J'ai essayé de résumer le cycle de mise en page désordonné de ViewController et View
[Rails] Comment obtenir l'URL de la source de transition et la rediriger
Je veux comprendre le flux des paramètres de demande de traitement Spring
Explication de Ruby on rails pour les débutants ⑤ ~ Modifier et supprimer la base de données ~
[Rails] Lire le RSS du site et renvoyer le contenu au premier plan
Rails [Pour les débutants] Implémentation de la fonction de commentaire
Comment décorer CSS sur les boutons radio de rails6 form_with (helper)
Confirmation et refactoring du flux de la requête au contrôleur dans [httpclient]
(Pour les débutants) [Rails] Technologie de gain de temps! Comment installer et utiliser Slim
[Rails] La cause de l'impossibilité de publier des messages était form_with
Bouton [Rails] pour revenir en haut de la page
J'ai essayé d'organiser la session en Rails
Comparez la vitesse de l'instruction for et de l'instruction for étendue.
[Pour les débutants] Comment implémenter la fonction de suppression
Présentez Docker à l'environnement de développement et à l'environnement de test des applications Rails et MySQL existantes
[Introduction à Java] Bases de l'arithmétique Java (pour les débutants)
Pour ceux qui souhaitent utiliser MySQL pour la base de données dans la construction de l'environnement de Rails6 ~.
Bibliothèque non chargée lors de la tentative de mise à niveau de la version ruby et des rails s
[Explication approximative] Comment séparer le fonctionnement de l'environnement de production et de l'environnement de développement avec Rails
Une revue du code utilisé par les rails débutants
Convertit le tableau d'erreurs.full_messages en caractères et sortie
Comprendre les caractéristiques de Scala en 5 minutes (Introduction à Scala)
[Rails] Comment changer le nom de colonne de la table
Classes et instances Java comprises dans la figure
Introduction à Java pour les débutants Connaissance de base du langage Java ①
Liste des instructions Java fréquemment utilisées (pour les débutants et les débutants)
[Rails] Comment obtenir le contenu des paramètres forts
À peu près le flux de développement d'applications Web avec Rails.
Explication de Ruby sur rails pour les débutants ⑥ ~ Création de validation ~
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~
[Rails] Entièrement compris form_with
[Pour les débutants] Explication des classes, des instances et des statiques en Java
Je n'ai pas vraiment compris le comportement de Java Scanner et .nextLine ()
Comprendre le flux approximatif de la demande à la réponse dans SpringWebMVC
J'ai essayé de résumer les bases de kotlin et java
Commande pour vérifier le nombre et l'état des threads Java
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
Les débutants en Java ont brièvement résumé le comportement de Array et ArrayList
Voici quelques articles auxquels les débutants en programmation se sont référés.
[Rails] Comment afficher une liste de messages par catégorie
Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Options pour les rails nouveaux et réglages à effectuer après les rails neufs
Tutoriel pour créer un blog avec Rails pour les débutants Partie 2
[Rails] Où faire attention dans la description de la validation
Réintroduction à Java for Humanities 0: Comprendre l'acte de programmation
Viser une compréhension de base du flux de traitement récursif
Tutoriel pour créer un blog avec Rails pour les débutants Partie 0