2014-09-06 1 views
0

Lors de l'enregistrement et de la mise à jour d'un objet, la valeur renvoyée est de type booléen - true ou false.Renvoie true/false lors de la création de l'objet

Comme la méthode create renvoie l'objet en tant que valeur, comment puis-je savoir si une création a échoué ou non?

+0

--------- ---------- – Numbers

+1

duplication possible de [Ruby on Rails Active Record valeur de retour lors de la création échoue?] (Http://stackoverflow.com/questions/23975835/ruby-on-rails-active-record- return-value-when-create-failed) – lurker

+0

Merci. Et la réponse à votre commentaire supprimé: j'obtiens 'false' en comparant' nil' à la variable en sauvegardant la valeur de retour (d'une création ayant échoué). – Numbers

Répondre

1

Vous pouvez essayer

@object = Blah.create() 
@object.persisted? # true or false 

aussi si vous voulez jeter une erreur à la place, vous pouvez utiliser la version bang, assurez-vous d'utiliser le sauvetage

@object = Blah.create!() 
+0

Quelle serait la différence entre l'utilisation de 'valid?' Et 'persisted?' – Numbers

+0

'valid' vérifie si l'objet est valide ou non, mais' persisted' vérifie si elle est enregistrée ou non, un objet pourrait être persistant mais pas valide, soit en ajoutant des validateurs plus tard après l'enregistrement de l'objet, soit en sauvegardant avec validation, passez l'objet '@ object.save (validate: false)' –

Questions connexes