Vaildation de cas particuliers

bonjour a tous,

Petit probleme de validation:

  • Je voudrais valider mon modèle, mais dans certains cas seulement…cas
    d’utilisation: un utilisateur (donc avec un id) est crée par defaut,
    donc
    sans username password. l’utilisateur peut aussi s’enregistrer et ne pas
    etre “anonyme”.
    Donc le mecanisme de validation par defaut ne marche pas, puisque je
    veut
    tester par exemple l’existence de username/password que dans un cas
    particulier et non dans tous les cas

Je crée donc cela, dans mon modele:

def validate_for_web
   if User.find_by_name(name)!=nil
       errors.add(name,"Already exists")
   end
   errors.add_on_empty %w(name password email)
end

Et j’apelle cette methode lors de l’appel de “signin” dans mon
controlleur

Question:

  1. est ce la bonne methode?
  2. Comment tester et obtenir le meme traitement d’erreur? J’ai bien le
    champ
    erreur renseigné dans User, mais il n’est pas affiché? Faut il faire
    quelquechose avec Flash?

C’est vrai que quand on commence a dev ave RoR, c’est pas un reflexe
(t’inquiete cela le devient par la suite), c’est d’aller faire un tour
sur
http://api.rubyonrails.com/

Tu fais une recherche sur validates_presence_of (ou un autre validateur)

Et la tu vois que une option :if (if - Specifies a method, proc or
string to
call to determine if the validation should occur (e.g. :if =>
:allow_validation, or :if => Proc.new { |user| user.signup_step > 2 }).
The
method, proc or string should return or evaluate to a true or false
value.)

Bon courage.

Did

2006/11/24, Thomas L. [email protected]: