[RUBY] [Rails] Was war die Fehlermeldung?

So generieren und zeigen Sie Fehlermeldungen an

Generieren

python


>> user = User.new

>> user.save    #Generierung von Fehlermeldungen
=> false

>> user.error.full_messages  
=> [Failed"", "invalid"]

Beim Speichern eines Objekts wird eine Fehlermeldung als Element des Arrays generiert, sobald false zurückgegeben wird.

Anzeige

erb


<% @user.errors.full_messages.each do |msg| %>
  <%= msg %>
<% end %>

Jedes Element des Arrays kann mit jeder Anweisung abgerufen und angezeigt werden.

Klassenattribut, das nur bei einem Fehler angezeigt wird

class="field_with_errors" Es schließt automatisch die Eingabeteile des Fehlerteils ein.

Implementierung

Bei der Verwendung von Partials wird es so implementiert, dass es jedes Objekt verarbeiten kann.

ruby:shared/_error_messages.html.erb


<% if object.errors.any? %>
  <div id="error_explanation">
    <div class="alert alert-danger alert-form-extend" role="alert">
      <%= object.errors.count %>Es liegt ein Fehler vor
    </div>
    <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
    </ul>
  </div>
<% end %>

ruby:users/new.html.erb


<%= form_with(model: @user, url: users_path, local: true) do |form| %>
  <%= render 'shared/error_messages', object: form.object %>

users_controller.rb


def create
  @user = User.new(user_params)
  if @user.save
    ~~
  else
    render 'new'
  end
end

application.scss


#error_explanation {
  color: red;
  ul {
    color: red;
    padding-bottom: 0;
  }
}

.field_with_errors .form-control { 
  border-color: red;
}

Recommended Posts

[Rails] Was war die Fehlermeldung?
[Rails] Lassen Sie uns die Fehlermeldung ins Japanische übersetzen
Schienen ~ Die Nachrichtenfunktion verstehen ~
[Rails] Ich habe die Validierungsfehlermeldung mit asynchroner Kommunikation implementiert!
Was mich an Progates Ruby on Rails-Kurs interessiert hat [jede Erklärung der Fehlermeldung]
[Schienen] Was tun, wenn mit der Fehlermethode keine Fehlermeldung angezeigt wird?
Erhalten Sie eine Fehlermeldung mit einer beliebigen Methode
Rails Flash-Nachricht
Der Weg zur Japanisierung von Rails führt zu Fehlermeldungen
Die Gerätefehlermeldung wird nicht richtig angezeigt.
[Ruby on Rails] So japanisieren Sie die Fehlermeldung des Formularobjekts (ActiveModel)
[Hinweis] Rails-Fehlerliste
Was tun, wenn der Rails-Server nicht gestartet werden kann?
Catch Rails Routing-Fehler
Mac Rails Installationsfehler
[Rails] Was ist der Unterschied zwischen Redirect und Rendering?
Was soll ich für das Test-Framework verwenden [Rails]
Beherrsche das [Rails] Scope!
[Schienen] Was tun, wenn die Ansicht zusammenbricht, wenn eine Nachricht mit der Fehlermethode angezeigt wird?
Wovon ich bei der Einführung der JNI-Bibliothek süchtig war
[Rails] Was ist der Unterschied zwischen Bundle-Installation und Bundle-Update?
Wovon ich süchtig war, als ich rspec auf Schienen benutzte
Ich bin von Rails gekommen und wusste nicht, was [attr_accessor] ist
Was ich mit der Redmine REST API süchtig gemacht habe
[Rails] Japanische Lokalisierung der Fehlermeldung bei Verwendung des Formularobjekts
Was tun, wenn der Befehl Rails unbrauchbar wird?
[Memorandum] Was ist ein Fehler?
[Rails] Was tun, wenn der Fehler Keine Datenbank ausgewählt und Unbekannte Datenbank in db: migrate angezeigt wird?
Ich wusste, was Reflexion war
Was ist die Zupfmethode?
Was ist Rails Gem Devise?
Schienenfehler Bibliothek nicht geladen
[Schienen] Was sind starke Parameter?
[Programmieranfänger] Was tun, wenn Schienen zu einem Fehler in der lokalen Entwicklungsumgebung werden?
Was ist die BufferedReader-Klasse?
[Umgebungsvariablen] Schienen Was sind Umgebungsvariablen?
Fehler bei der Verwendung von Schienen Capybara
Wofür ist der Konstruktor?
Mit dem Fehler Cordova-> Looper.prepare ()
[Rails] Fehler während der Installation des Geräts
[Rails] Löschen Sie die Migrationsdatei
Was ist Rails Active Record?
Was ist die Initialisierungsmethode?
Ich habe versucht zusammenzufassen, was bei der Site-Java-Ausgabe gefragt wurde.
Was tun, wenn die Rails-Seite im Rails-Lernprogramm 1.3.2 nicht angezeigt wird?