Vous le savez probablement déjà (sinon, je ne peux que vous conseiller de voir les bases de Ruby on Rails) comment il est facile de valider des données avec notre framework préféré :)

if mesDonnees.save
#Les données ont bien été sauvegardées
else
# Il y a une erreur. mesDonnees.errors la contient il n'y a plus qu'à l'afficher.
end

Après, il n’y a plus qu’à ajouter des paramètres de validation des données dans le modèle.
Mais maintenant, supposons d’autres cas de validation un peu particuliers, qui ne rentrent pas dans le cas « normal ».

Vous n’avez qu’à créer une nouvelle méthode qui valide vos données (l’exemple ci-dessous est totalement bidon) :

def validates_roxitude(*attribut)
reg = Regexp.new '/^ruby(.*?)rox$/'
self.errors.add('rox', 'Hey, Ruby ça rox. Faut le dire !') unless reg.match attribut
end

Ici, nous mettons donc une erreur sauf si le champ « monChamp » commence par ruby et se termine par rox.

Il n’y a plus qu’à forcer la validation avec cette méthode et le tour est joué !
class monModel < ActiveRecord::Base
validates_roxitude :monChamp
end

 
Fork me on GitHub