[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen

Ziel

error.gif

Entwicklungsumgebung

ruby 2.5.7 Rails 5.2.4.3 OS: macOS Catalina

Annahme

Ansicht bearbeiten

Im Ausgangszustand wird es wie folgt beschrieben.

erb:app/views/users/registrations/new.html.erb


<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= render "users/shared/error_messages", resource: resource %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
  </div>

  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
  </div>

  <div class="field">
    <%= f.label :password %>
    <% if @minimum_password_length %>
    <em>(<%= @minimum_password_length %> characters minimum)</em>
    <% end %><br />
    <%= f.password_field :password, autocomplete: "new-password" %>
  </div>

  <div class="field">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

<%= render "users/shared/links" %>

Nehmen Sie die oben genannten Änderungen vor.

erb:app/views/users/registrations/new.html.erb


<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <% if @user.errors.any? %>
  <% end %>

  <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
    <% if @user.errors.include?(:name) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:name).first %>
    <% end %>
  </div>

  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
    <% if @user.errors.include?(:email) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:email).first %>
    <% end %>
  </div>

  <div class="field">
    <%= f.label :password %>
    <% if @minimum_password_length %>
    <em>(<%= @minimum_password_length %> characters minimum)</em>
    <% end %><br />
    <%= f.password_field :password, autocomplete: "new-password" %>
    <% if @user.errors.include?(:password) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:password).first %>
    <% end %>
  </div>

  <div class="field">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
    <% if @user.errors.include?(:password_confirmation) %>
      <p style="color: red;"><%= @user.errors.full_messages_for(:password_confirmation).first %>
    <% end %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

<%= render "users/shared/links" %>

Ergänzung

python


(1) Löschen Sie die folgende Beschreibung und fügen Sie eine if-Anweisung hinzu.@Überprüfen Sie, ob Benutzerfehler vorliegen.
<%= form_for〜%>
<%= render "users/shared/error_messages", resource: resource %>
↓
<%= form_for〜%>
<% if @user.errors.any? %>
<% end %>

(2) Fügen Sie nach der Bearbeitung unter jedem Feld die folgenden Spaltennamen hinzu.
<% if @user.errors.include?(:name) %>
  <p style="color: red;"><%= @user.errors.full_messages_for(:name).first %>
<% end %>

Wenn Sie eine Validierung hinzufügen und weitere Fehler sehen möchten Wenn Sie wie folgt hinzufügen, ist es OK. Es gibt viele Arten der Validierung. Bitte probieren Sie es aus. Ich habe übrigens bestätigt, dass die folgenden Validierungen nicht leer sind.

app/models/user.rb


validates :name, presence: true

Recommended Posts

[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
[Rails] Japanische Lokalisierung von Fehlermeldungen
Grundkenntnisse in Ruby on Rails
[Ruby on Rails] Hinzufügen und Löschen von Tags und Anzeigen von (Erfolgs- / Fehler-) Meldungen mit Ajax.
(Ruby on Rails6) Anzeige der Datenbank, die die ID der Datenbank erhalten hat
[Ruby on Rails] Einführung der Anfangsdaten
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Rails] So zeigen Sie Fehlermeldungen einzeln an
[Ruby on Rails] Japanische Fehlernotation
Erklärung von Ruby auf Schienen für Anfänger ①
[Ruby on Rails] Implementierung einer ähnlichen Funktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Informationen zu Ruby-Fehlermeldungen
[Ruby on Rails] Bis zur Einführung von RSpec
Empfehlung der Serviceklasse in Ruby on Rails
Ruby on Rails ~ Grundlagen von MVC und Router ~
Ruby on Rails Elementary
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
Ruby on Rails Grundlagen
Ruby On Rails Association
[Ruby on Rails] Ranglistenanzeige (Gesamt, Durchschnittswert)
[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
Japanische Lokalisierung von Rails-Fehlermeldungen [Objekte entwerfen / bilden usw.]
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
Erklärung von Ruby on Rails für Anfänger ② ~ Links erstellen ~
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
Japanische Lokalisierung der Fehlermeldung
Ruby on Rails Lernrekord -2020.10.03
Portfolioerstellung Ruby on Rails
Ruby on Rails Lernrekord -2020.10.04
[Ruby on Rails] Debuck (bindend.pry)
Ruby on Rails Lernrekord -2020.10.05
Ruby on Rails Lernrekord -2020.10.09
Ruby on Rails lernen Rekord-2020.10.07 ②
Ruby on Rails lernen Rekord-2020.10.07 ①
Ruby on Rails Lernrekord -2020.10.06
Zusammenfassung der Ruby on Rails-Validierung
[Ruby on Rails] undefinierte Methode `id'for nil: NilClass-Fehlerbehebungsmethode
[Ruby on Rails] Zeigt den Seitentitel schnell im Browser an
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
[Ruby on Rails] Eliminierung von Fat Controller-First, Logik zum Modell-
Alle Inhalte der Listenseite löschen [Ruby on Rails]
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Ruby on Rails] Einfache Scroll-Animation von Javascript (mit ScrollReveal.js)
So zeigen Sie Diagramme in Ruby on Rails an (LazyHighChart)