[RUBY] Les données ne sont pas enregistrées dans Rails.

arrière-plan </ font>

Lors de l'enregistrement de données à l'aide d'ActiveRecord, les données peuvent ne pas être enregistrées. C'est souvent glissant lors de la validation, alors gardez-le organisé.

environnement </ font>

article Contenu
OS.Catalina v10.15.4
Ruby v2.5.1
Ruby On Rails v5.2.4.3

Contenu </ font>

Je n'ai pas beaucoup d'opportunités, mais quand il y a un service qui crée un utilisateur initial, par exemple.

app/lib/make_default_data_service.rb


1    default_user = User.new
2    default_user.update_attributes(
3      id: 1,
4      password: 1111,
5      name: 'Utilisateur non enregistré',
6      email: '[email protected]'
    )

Lorsque j'exécute le service, aucune donnée n'est enregistrée. Quand j'enquête ...

  User Exists (32.4ms)  SELECT  1 AS one FROM `users` WHERE `users`.`email` = BINARY '[email protected]' LIMIT 1
  ↳ app/lib/make_default_data_service.rb:15
   (0.5ms)  ROLLBACK

J'étais en train d'enquêter jusqu'à la base de données, disant à tort "Les données utilisateur existent-elles déjà?" La deuxième ligne de la source ci-dessus a été modifiée.

(* Après réparation) app/lib/make_default_data_service.rb


1    default_user = User.new
2    default_user.update_attributes!(
3      id: 1,
4      password: 1111,
5      name: 'Utilisateur non enregistré',
6      email: '[email protected]'
    )

Puis. image.png

Il semble qu'il a violé la convention de numéro de caractère du mot de passe. C'est plus facile à comprendre. Vous pouvez le remplacer par la méthode save → save !. Le déploiement est un mauvais modèle, mais ... c'est tout.

Recommended Posts