En temps normal, si j’ai une action de mise à jour, mon Model va générer une requête SQL de type UPDATE. Si c’est une nouvelle création, ça génère une requête SQL de type CREATE. C’est la classe ActiveRecord qui traduit mon code Rails en requêtes SQL.
La validation se fait avant que le Model n’enregistre quoique ce soit dans la bdd. Donc si un objet n’est pas valide, la requête SQL correspondante n’est pas générée. Attention : certaines méthodes déclenchent le processus de validation, d’autres non.
Méthodes qui déclenchent la validation
Les méthodes suivantes n’enregistrent un objet en bdd uniquement si il est valide :
create create! save save! update update_attributes update_attributes!
Méthodes qui outre-passents la validation
Les méthodes suivantes n’utilisent pas de validation et sauvegarderont des données dans la bdd quelle que soit leur validité :
decrement! decrement_counter increment! increment_counter toggle! update_all update_attribute update_counters
Il faut faire attention en utilisant ces méthodes dans un Controller de ne pas enregistrer de mauvaises données.
Flux RSS