[RUBY] [Rails] Vollständig verstanden form_with

Inhalt dieses Artikels

--Verwenden Sie die Methode form_with ordnungsgemäß

Umgebung

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

Was ist form_with

Es ist eine Methode, die UI-Teile zum Senden von Formularen erstellt und die Funktion zum automatischen Umschalten von Controller-Aktionen auf der Serverseite bietet.

Die Faktoren für das Umschalten variieren in Abhängigkeit von den Werten für das optionale Modell und die URL und sind wie folgt.

Möglichkeit @Inhalt des Benutzers Aktion, die aufgerufen werden soll Verwenden
model: @user User.new create Benutzer erstellt
model: @user User.find() update Benutzer bearbeiten
url: sessions_path create Benutzer-Anmeldung

Darüber hinaus ist der Unterschied zwischen den Optionen wie folgt.

Möglichkeit Attribut für den Namen des Eingabebereichs Starke Parameter
model: @user name="user[email]" params.require(:user).permit(:email)
url: users_path name="email" params.permit(:email)

Beispiel mit der Modelloption

.erb


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

  <%= f.submit "zu registrieren" %>
<% end %>

Beispiel mit der URL-Option

.erb


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

  <%= f.submit "Anmeldung" %>
<% end %>

lokale Option

Tatsächlich ist die Option `` `remote: true``` standardmäßig angegeben und für die Durchführung der sogenannten Ajax-Kommunikation voreingestellt. Wenn nichts festgelegt ist, wird Flash möglicherweise nicht angezeigt, da die Rendermethode nicht ausgeführt wird.

Das obige Problem kann gelöst werden, indem die folgenden Einstellungen für die normale HTTP-Kommunikation vorgenommen werden.

.erb


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

Zusammenfassung

form_with ist praktisch, da es automatisch den Typ der HTTP-Anforderung bestimmt.

Recommended Posts

[Rails] Vollständig verstanden form_with
Migration in Schienen verstehen
Verstehen Sie die Hilfsmethode form_with
[Rails] Zwei Möglichkeiten, form_with zu schreiben
[Rails] Lernen Sie Ausbeute, um content_for zu verstehen
[Rails] Über die Hilfsmethode form_with [Basic]
[Rails] Artikel für Anfänger, um den Fluss von form_with zu organisieren und zu verstehen
[Formular mit zwei Argumenten] Schienen, form_for / form_with Argumente
[Rails] Über local: true, beschrieben in form_with