[RUBY] [Rails] À propos de la méthode d'assistance form_with [Basic]

Je n'ai pas beaucoup compris pendant l'étude, j'aimerais donc l'organiser tout en le produisant. J'écrirai attentivement à partir des bases. Si vous indiquez, s'il vous plaît.

Qu'est-ce qu'une méthode d'assistance?

En premier lieu, rails a une méthode pour faire apparaître les balises HTML dans la vue et traiter le texte à l'avance. Celles-ci sont appelées méthodes d'assistance. form_with est un type de méthode d'assistance.

À propos de form_with

Une méthode d'aide pour l'implémentation de formulaire qui a été recommandée depuis la version appelée Rails 5.1. form_tag / form_for semble être obsolète. (L'explication de ces deux méthodes est omise.)

.erb


<!-- form_Exemple d'utilisation de balise-->
<%= form_tag('/posts', method: :post) do %>
  <input type="text" name="content">
  <input type="submit" value="Publier">
<% end %>

.erb


<!--form_Exemple d'utilisation avec-->
<%= form_with model: @post, local: true do |form| %>
  <%= form.text_field :content %>
  <%= form.submit 'Publier' %>
<% end %>

La fonctionnalité de form_with est (1) Le chemin est automatiquement sélectionné et il n'est pas nécessaire de spécifier la méthode HTTP. (2) Une instance du modèle qui hérite d'ActiveRecord passé du contrôleur peut être utilisée (@post correspond à celle ci-dessus)

Dans ce cas, ① Pour les nouveaux messages ② Lors de l'appel d'un message existant Le traitement changera avec.

① Pour les nouveaux messages

posts_controller.rb


def new
  @post = Post.new
end

Cliquez sur le bouton de publication et il sera envoyé à l'action de création.

new.html.erb


<%= form_with model: @post, class: :form, local: true do |form| %>
  <%= form.text_field :title, placeholder: :Titre, class: :form__title %>
  <%= form.text_area :content, placeholder: :Corps du blog, class: :form__text %>
  <%= form.submit 'Publier', class: :form__btn %>
<% end %>

② Lors de l'appel d'un message existant

posts_controller.rb


def edit
  @post = Post.find(params[:id])
end

edit.html.erb


<%= form_with model: @post, class: :form, local: true do |form| %>
  <%= form.text_field :title, placeholder: :Titre, class: :form__title %>
  <%= form.text_area :content, placeholder: :Corps du blog, class: :form__text %>
  <%= form.submit 'Publier', class: :form__btn %>
<% end %>

Cliquez sur le bouton de publication et il sera envoyé à l'action de mise à jour.

Résumé

Par comparaison, les parties de formulaire de new.html.erb et edit.html.erb sont les mêmes! !! !! Par conséquent, la partie de formulaire peut être transformée en un modèle partiel et la quantité de description peut être réduite. Il déterminera automatiquement si le modèle @post a du contenu et vous l'enverra.

mis-à-part Vous pouvez transmettre plusieurs modèles, par exemple form_with model: [@ ￰post, @ ￰comment]. J'aimerais l'écrire dans un autre article ...

Recommended Posts

[Rails] À propos de la méthode d'assistance form_with [Basic]
Comprendre la méthode d'assistance form_with
À propos de la méthode de raclage des rails Mechanize
Prise en compte du routage de la méthode form_with helper
[Ruby on Rails] Méthode d'aide pratique
méthode des rails
[Rails] À propos de local: true décrit dans form_with
[Rails] Comment utiliser la méthode d'assistance, confimartion
À propos du routage des rails
Méthode de délégué Rails
À propos de la méthode
[Servlet] Méthode de base
[Rails] À propos d'ActiveJob,!
Philosophie de base des rails
À propos du contrôleur Rails
Sortie sur la méthode, partie 2
À propos de la grammaire de base Android
[Rails 6] À propos des principaux joyaux
[Rails] À propos du hachage actif
[rails] Comment utiliser la méthode d'assistance de devise before_action: authenticate_user!
À propos de la spécification de version des rails
À propos de la liaison de méthode Java
A propos des méthodes de fractionnement (Java)
À propos de la méthode de longueur
[Rails] conçoit une méthode d'introduction
À propos de la méthode cartographique
À propos de redirect_to dans form_with
À propos de la méthode des ancêtres
À propos de form. ○○ de form_with
[Java] Notes de méthode de base
[rails] concevoir les valeurs par défaut
[Rails] Entièrement compris form_with
À propos de la méthode to_s.
rails Paramètres forts
[Débutant] À propos de la session Rails
Sortie sur la méthode Partie 1
[Rails] nécessitent une méthode et une méthode d'autorisation
A propos de l'attribution d'un nom aux méthodes de modèle Rails
[Java Silver] À propos de la méthode equals
[Rails] À propos de la structure des dossiers scss
Clé de base du pipeline d'actifs Rails
[Rails] À propos du test de réponse Rspec
Prise en compte de la méthode des temps
Branche conditionnelle avec méthode d'assistance
Mémorandum de base Ruby on Rails