Quelle est la différence entre save(false)
et save(:validate => false)
? D'après ce que je peux dire, la fonctionnalité est la même. La version qui utilise :validate
Est dans l'API, ce qui m'amène à croire que save(false)
est une version obsolète? Cela m'est venu en suivant ceci: https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user . Le guide contient save(false)
mais je recevais des erreurs lors de son utilisation. Je suis passé à la version :validate
Et cela a bien fonctionné.
Dans Rails versions antérieures à 3, save
était une méthode dans ActiveRecord::Base
et vous pourriez lui passer false
afin de contourner les validations.
Dans Rails 3, save
a été déplacé vers ActiveRecord::Persistance
et depuis lors, vous devriez passer :validate => false
à save
pour contourner les validations.
Toutes les validations à partir du modèle sont ignorées lorsque nous utilisons validate: false
@user = User.new(....)
@user.save(validate: false)
Base d'action désactiver la validation
http://www.dan-manges.com/blog/action-dependent-validations-and-why-on-update-is-bad
Ignorer la validation de champ
https://richonrails.com/articles/skipping-validations-in-Ruby-on-Rails
Exemple
classe User <ActiveRecord :: Base
validates_presence_of: mot de passe,: on =>: mise à jour
fin