[RUBY] méthode save!

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.

Quelle est la méthode save / save!?

Une méthode pour enregistrer des données.

méthode de sauvegarde

La méthode save renvoie true si la sauvegarde réussit et false si la sauvegarde échoue (la validation échoue).

méthode save!

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.

référence

Les ingénieurs actifs expliquent comment utiliser la méthode save! De Rails [pour les débutants]

Recommended Posts

méthode save!
Méthode Java
méthode to_i
Méthode getRequestDispatcher ()
méthode de fusion
inclure la méthode
Méthode abstraite
Méthode de liste
met méthode
Méthode Java
Méthode de classe
Méthode getParameter
[Java] méthode
méthode privée
méthode des rails
[Java] méthode
Méthode Ruby to_s
Méthode de transition d'écran
Recherche binaire Méthode de recherche dichotomisée
Méthode de recherche
Modèle de méthode d'usine
Méthode de commutation d'exception
Méthode de délégué Rails
problème de méthode de scan
Référence de la méthode Java8
À propos de la méthode
[Java] méthode forEach
[Pratique] Méthode de la carte
[Servlet] Méthode de base
Méthode de recherche par bisection
Modèle de méthode de modèle
Modèle de modèle de méthode
Comment remplir 0 (peut être différent de 0)
Méthode d'étude JavaSilver11
méthode keycloak test-skip
Modèle de méthode d'usine
[Ruby] méthode d'initialisation
Méthode de construction Ruby
erreur de méthode `** _ chemin 'non définie
référence de la méthode java8
[Rails] Différence entre la méthode de création et la méthode nouvelle + sauvegarde
[Java] Méthode aléatoire
Méthode d'accesseur Ruby
[Java] méthode de fractionnement
méthode de la carte rubis