[RUBY] Save! -Methode

Beim Erstellen der Flima-App konnte ich nicht herausfinden, warum die Daten nicht gespeichert wurden, obwohl ich den Schlüssel erhalten konnte. Als ich den Mentor fragte, sagte er mir, wie ich die Ursache finden könne. Machen Sie sich also eine Notiz.

Was ist die save / save! -Methode?

Eine Methode zum Speichern von Daten.

Speichermethode

Die Speichermethode gibt true zurück, wenn das Speichern erfolgreich ist, und false, wenn das Speichern fehlschlägt (Validierung schlägt fehl).

Save! -Methode

Die save! -Methode gibt true zurück, wenn das Speichern erfolgreich ist, aber eine Ausnahme wird ausgelöst, wenn das Speichern fehlschlägt (Validierung schlägt fehl). Daher ist es erforderlich, die Verarbeitung in der Rettungsklausel durchzuführen, wenn sie nicht gespeichert werden kann.

■ In meinem Fall, als ich "binding.pry" verwendet habe, konnte ich den Schlüssel erhalten, also habe ich "@user.save" verwendet, um die Ursache zu finden. ↓ Beschreibung, wann es nicht gespeichert werden konnte

[8] pry(#<Users::RegistrationsController>)> @user.save!
   (0.2ms)  BEGIN
  ↳ (pry):12
  User Exists (13.4ms)  SELECT  1 AS one FROM `users` WHERE `users`.`email` = BINARY '' LIMIT 1
  ↳ (pry):12
   (1.1ms)  ROLLBACK
  ↳ (pry):12
ActiveRecord::RecordInvalid: Validation failed: Email can't be blank, Email is invalid, Password can't be blank, Nickname can't be blank, Encrypted password can't be blank, Encrypted password is too short (minimum is 7 characters), Encrypted password is invalid, Familyname kanji can't be blank, Familyname kanji is invalid, Firstname kanji can't be blank, Firstname kanji is invalid, Familyname kana can't be blank, Familyname kana is invalid, Firstname kana can't be blank, Firstname kana is invalid, Birthday can't be blank
from /Users/httr_htm/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.4.3/lib/active_record/validations.rb:80:in `raise_validation_error'

Die Ursache wird nach "ActiveRecord :: RecordInvalid" geschrieben.

Infolgedessen war die Beschreibung des regulären Ausdrucks die Ursache. Ich hatte die E-Mail im Format "aa @ aa.aa" eingestellt, aber ich war in der Validierung stecken geblieben, weil ich "aa @ aa" eingegeben habe. Wenn ich die Fehleranzeige eingestellt hätte, wäre sie möglicherweise früher behoben worden.

Ich wurde auf eine Website eingeführt, die reguläre Ausdrücke mit dem Namen [Rubular] überprüft (https://rubular.com/). Ich möchte es in Zukunft nutzen.

Referenz

Aktive Ingenieure erklären, wie die Save! -Methode von Rails [für Anfänger] verwendet wird

Recommended Posts

Save! -Methode
Java-Methode
to_i Methode
Methode getRequestDispatcher ()
Zusammenführungsmethode
Methode einschließen
Abstrakte Methode
Listenmethode
setzt Methode
Java-Methode
Klassenmethode
getParameter-Methode
[Java] -Methode
private Methode
Schienenmethode
[Java] -Methode
Ruby to_s Methode
Bildschirmübergangsmethode
Dichotomisierte Suchmethode für die binäre Suche
Suchmethode
Factory Method Pattern
Ausnahmeschaltmethode
Schienen delegieren Methode
Problem mit der Scanmethode
Java8-Methodenreferenz
Über die Methode
[Java] forEach-Methode
[Übung] Kartenmethode
[Servlet] Grundlegende Methode
Bisektionssuchmethode
Muster der Vorlagenmethode
Muster der Vorlagenmethode
Wie man 0 ausfüllt (kann anders als 0 sein)
JavaSilver11-Lernmethode
Key-Cloak-Test-Skip-Methode
Factory Method Muster
[Ruby] Initialisierungsmethode
Ruby-Build-Methode
undefinierte Methode `** _ path'error
Java8-Methodenreferenz
[Schienen] Unterschied zwischen Erstellungsmethode und neuer + Speichermethode
[Java] Zufällige Methode
Ruby-Accessor-Methode
[Java] Split-Methode
Ruby Map Methode