[RUBY] [Rails] Entièrement compris form_with

Contenu de cet article

--Utilisation correcte de la méthode form_with

environnement

$ rails -v
Rails 6.0.3.1
$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-darwin19]

Qu'est-ce que form_with

Il s'agit d'une méthode qui crée des parties de l'interface utilisateur pour soumettre des formulaires et qui a la fonctionnalité de basculer automatiquement les actions du contrôleur côté serveur.

Les facteurs de changement varient en fonction des valeurs du modèle facultatif et de l'URL et sont les suivants.

option @Contenu de l'utilisateur Action à appeler Utilisation
model: @user User.new create Utilisateur créé
model: @user User.find() update Modifier l'utilisateur
url: sessions_path create Utilisateur en ligne

De plus, la différence entre les options est la suivante.

option Attribut de nom de zone d'entrée Paramètres forts
model: @user name="user[email]" params.require(:user).permit(:email)
url: users_path name="email" params.permit(:email)

Exemple utilisant l'option de modèle

.erb


<%= form_with model: @user do |f| %>
  <%= f.label :name, "Nom" %>
  <%= f.text_field :name, placeholder: "Yamada" %>

  <%= f.submit "s'inscrire" %>
<% end %>

Exemple d'utilisation de l'option url

.erb


<%= form_with url: sessions_path do |f| %>
  <%= f.label :name, "Nom" %>
  <%= f.text_field :name, placeholder: "Yamada" %>

  <%= f.submit "s'identifier" %>
<% end %>

option locale

En fait, l'option `` remote: true '' est donnée par défaut, et elle est prédéfinie pour effectuer ce que l'on appelle la communication Ajax. Par conséquent, si rien n'est défini, flash peut ne pas s'afficher car la méthode de rendu n'est pas exécutée.

Le problème ci-dessus peut être résolu en définissant les paramètres suivants pour une communication HTTP normale.

.erb


<%= form_with model: @user, local: true do |form| %>

Résumé

form_with est pratique car il détermine automatiquement le type de requête HTTP.

Recommended Posts

[Rails] Entièrement compris form_with
Comprendre la migration dans les rails
Comprendre la méthode d'assistance form_with
[Rails] Deux façons d'écrire form_with
[Rails] Apprenez le rendement pour comprendre content_for
[Rails] À propos de la méthode d'assistance form_with [Basic]
[Rails] Articles pour les débutants pour organiser et comprendre le flux de form_with
[Formulaire avec deux arguments] rails, form_for / form_with arguments
[Rails] À propos de local: true décrit dans form_with