Contrôle de valeur

1. Le modèle

Jusqu’ici, nous avons passé sous silence la question de la validité des données produites par notre interface (format de l’e-mail…). Nous n’avons pas non plus fait de contrôle sur la présence de valeur en autorisant à chaque fois des valeurs vides.

Une validation peut être faite en surchargeant les méthodes de notre modèle :

  • validate : cette méthode est invoquée pour toute création ou mise à jour de l’objet. La fonction errors devra être utilisée pour stocker les messages d’erreur.

  • validate_on_create : cette méthode est invoquée à la première création de l’objet.

  • validate_on_update : cette méthode est invoquée pour chaque mise à jour de l’objet.

Dans l’exemple ci-dessous, nous modifions notre modèle Personne pour interdire la sauvegarde d’un objet personne sans nom et sans prénom :

class Personne < ActiveRecord::Base
    set_table_name 'personnes'

    has_many :emails
    protected
    def validate
        if nom == "" 
            errors.add( "nom", "Le nom ne peut pas etre vide" )
        end
        if prenom == ""
            errors.add( "prenom", "Le prénom ne peut pas être vide" )
        end
    end
end 

Nous testons la valeur des attributs nom et prenom, en cas de valeur vide, nous ajoutons grâce à la fonction errors, l’erreur en mentionnant...

Pour consulter la suite, découvrez le livre suivant :
couv_Ruby.PNG
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Jointure
Suivant
AJAX