J'ai un modèle ActiveRecord qui renvoie true
de valid?
(et .errors est vide), mais retourne false
de save()
. Si l'instance de modèle est valide, comment puis-je savoir ce qui cause l'échec de la sauvegarde ?
Réponses
Trop de publicités?
Sam Alex
Points
310
Andy Lindeman
Points
7213
Pencilcheck
Points
434
Roko
Points
759
Assurez-vous que vous n'essayez pas d'enregistrer un enregistrement supprimé.
J'ai eu le même problème. Mais contrairement à la réponse sélectionnée - mon problème n'était pas lié aux rappels.
Dans mon cas, j'avais essayé de sauvegarder dans un enregistrement supprimé (supprimé de la base de données).
@user = User.new
@user.save! # user saved to DB
@user.persisted? # true
@user.destroy # user deleted from DB
@user.persisted? # false, user still has its id
@user.valid? # return true
@user.errors # empty
@user.save # return false
@user.save! # raise ActiveRecord::RecordNotSaved