Salut,

J'essaie d'implémenter une validation conditionnelle d'un Model mais je vois pas trop comment faire ça simplement.

En gros, sur certains attributs de ma classe, j'effectue plusieurs validations à l'aide du validation_helper: un même attribut de ma classe est soumis à la validation de plusieurs de ces méthodes helper. Et si je ne remplis pas cet attribut dans le formulaire, il me sort toutes les erreurs correspondantes. Mon but serait de 'hiérarchiser' ces validations pour qu'il ne me dise pas que tel attribut est requis et qu'il doit être un chiffre à la fois, mais qu'il me dise juste qu'il est requis. Je sais, c'est pas très clair...

Si je prends l'exemple d'une classe Voiture, l'attribut cylindree serait soumis aux trois validations suivantes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
validates_presence_of :cylindree
validates_numericality_of : cylindree
  validates_inclusion_of :cylindree, 
  :in => 0..9
Mon objectif serait qu'il vérifie la numéricité (?) de l'attribut uniquement si l'attribut est présent, et qu'il ne vérifie l'inclusion de l'attribut que s'il est présent et que c'est un chiffre.

Je pourrais faire ça en surchargeant la méthode validate, mais ca serait fastidieux car j'ai beaucoup d'attributs de ce type, et ca serait dommage de ne pas utiliser les méthode helper de rails.

Voyez-vous un moyen de faire ça simplement?

Tout ceci est motivé par le fait qu'il est inutile de sortir 5 messages d'erreur en l'absence d'une valeur dans un form quand il en suffirait d'un seul!

Merci d'avance!