Là ce que tu veux faire me semble moyennement ergonomique et propre, de
base. A ta place, je ferais :

   - dans le modèle un finder spécifique
   - dans le contrôleur une méthode pour afficher un doublon à partir du nom
   et du prénom s'il y en a un (en utilisant le finder du modèle), ou une
   erreur 404 sinon
   - une route spécifique pour faire ta requête de "y a-t-il un doublon"
   - un observeur javascript qui va surveiller les champs "nom" et "prénom",
   et qui quand les deux ont été saisis et pas modifiés pendant 2 secondes va
   envoyer une requête Ajax demandant au contrôleur s'il y a un doublon ; si
   oui (pas d'erreur) tu affiche le résultat (donc le lien) et tu mets le
   champs en rouge, tu mets une alerte, tu fais ce que tu veux ; sinon (erreur
   404) tu laisse tel quel ou tu mets le champs en vert pour dire "c'est bon
   c'est vérifié"
   - un observeur javascript sur ton formulaire qui ne laisse pas envoyer
   tant que la vérification nom / prénom n'a pas été effectuée, et qui demande
   confirmation quand la vérification à été effectuée et que le nom / prénom va
   être en doublon

Etant donné que tu débutes, ça peut sembler un peu bourrin comme approche
(surtout si tu nage en JavaScript / AJAX, en fait le reste est assez
trivial) alors si c'est le cas n'hésite pas à demander des conseils, mais ça
me semble plus propre du point de vue modèle de données que de faire des
byepass de validations sachant que tu veux tolérer les homonymes si la
personne qui fait la saisie sait ce que'elle fait, et du point de vue
ergonomie c'est plus pratique que de faire une validation, de revoir le
formulaire revenir avec une erreur et devoir valider une deuxième fois.

Michel Belleville

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
-~----------~----~----~----~------~----~------~--~---

Répondre à