pourriez-vous m'expliquer en détail sur :before_save et :before_create en rappel RoR ? Et que faire avec les rails de validation ? Est la validation fonctionne après :before_save ou :before_create ?
Réponses
Trop de publicités?Dans une opération de création, sous les Rails, il y a six rappels avant l'opération de base de données, et deux après. Dans l'ordre, ce sont:
before_validation
before_validation_on_create
after_validation
after_validation_on_create
before_save
before_create
- BASE DE DONNÉES INSÉRER
after_create
after_save
Opérations de mise à jour ont exactement le même jeu, à l'exception de lecture update
au lieu de create
partout (et mise à JOUR au lieu d' INSÉRER).
À partir de là, vous pouvez voir que la validation est effectuée avant l' before_save
et before_create
rappels.
L' before_save
se produit un peu avant de l' before_create
. Au meilleur de ma connaissance, rien ne se passe entre eux; mais, before_save
sera également le feu sur des opérations de mise à Jour, tout en before_create
ne le feu sur les Crée.
before_create
vs before_save :on => :create
Parfois, vous devez faire attention à l'ordre des rappels
Voir ici pour plus de détails: http://pivotallabs.com/activerecord-callbacks-autosave-before-this-and-that-etc/