J'ai un peu de mal à normaliser un code de chaîne UPC pour pouvoir le stocker dans le même format dans la base de données.Transformation de données après validation réussie
J'utilise la pierre précieuse ean
pour vérifier si la chaîne est bonne (qui fonctionne très bien), mais si je jette un code d'affectation après valide tels que:
validate :upc_check
def upc_check
if !upc.nil?
if !upc.ean?
errors.add(:upc, 'is not a valid UPC.')
else
upc = upc.strip
end
end
end
L'appel de bande est juste un exemple car c'est une chaîne. Je vais effectivement supprimer les tirets dans l'upc.
Le code ci-dessus ne fonctionne pas aussi bien car il ne l'enregistre pas réellement. J'ai cherché à déclencher une méthode comme
after_validation :normalize_upc
def normalize_upc
upc = upc.strip
end
..mais ce qui précède ne fonctionne pas non plus.
Que faites-vous pour valider et transformer les données après validation?
Merci, c'est ce que j'ai fini par faire. Ça marche bien. – Nitrodist