Lors de la création de l'application Flima, je ne pouvais pas comprendre pourquoi les données n'étaient pas enregistrées, même si j'ai pu obtenir la clé. Quand j'ai demandé au mentor, il m'a dit comment trouver la cause, alors prenez note.
Une méthode pour enregistrer des données.
La méthode save renvoie true si la sauvegarde réussit et false si la sauvegarde échoue (la validation échoue).
La méthode save! Renvoie true si la sauvegarde réussit, mais une exception est déclenchée si la sauvegarde échoue (la validation échoue). Par conséquent, il est nécessaire d'effectuer le traitement dans la clause de sauvetage lorsqu'il ne peut pas être enregistré.
■ Dans mon cas, lorsque j'ai utilisé binding.pry
, j'ai pu obtenir la clé, donc j'ai utilisé@user.save!
Pour trouver la cause.
↓ Description lorsqu'il n'a pas pu être enregistré
[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'
La cause est écrite après ʻActiveRecord :: RecordInvalid`.
En conséquence, la description de l'expression régulière en était la cause. J'avais défini l'e-mail au format ʻaa @ aa.aa, mais j'étais bloqué dans la validation parce que j'ai entré ʻaa @ aa
. Si j'avais défini l'affichage des erreurs, cela aurait pu être résolu plus tôt.
J'ai été présenté à un site qui vérifie les expressions régulières appelé Rubular. Je veux l'utiliser à l'avenir.
Les ingénieurs actifs expliquent comment utiliser la méthode save! De Rails [pour les débutants]
Recommended Posts