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.
Eine Methode zum Speichern von Daten.
Die Speichermethode gibt true zurück, wenn das Speichern erfolgreich ist, und false, wenn das Speichern fehlschlägt (Validierung schlägt fehl).
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.
Aktive Ingenieure erklären, wie die Save! -Methode von Rails [für Anfänger] verwendet wird
Recommended Posts