Bonjour à tous,
Je voudrai savoir comment mettre un lien dans un message d’erreur de
formulaire ?
Je crée une application de carnet d’adresse et je voudrai que
lorsqu’on saisi une nouvelle personne et qu’il existe déjà une
personne avec ces nom et prenom dans la base, le message d’erreur
contienne un lien vers l’affichage de cette personne.
J’ai essayé ca (vois ci-dessous) mais ca ne va pas… Si vous pouvez
m’indiquer également où mettre le code ( vues, modèles, assistants…)
je débute en rails et je veux faire ca proprement…
def unique_personne?
if Personne.exists?(:nom => nom, :prenom => prenom)
doublon = Personne.first( :conditions => {:nom => nom, :prenom =>
prenom})
errors.add_to_base “#{nom.to_s} #{prenom.to_s} existe déjà (
#{link_to(“voir”,:action => “show”,:id => 1)})”
end
end
Ensuite je voudrai savoir comment faire pour ajouter un lien
“enregistrer quand même” pour que l’utilisateur puisse confirmer qu’il
veut enregistrer cette personne même s’il existe déjà quelqu’un avec
le même couple nom/prenom (idem où dois-je mettre le code ?)
Merci à tous
adrien
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
- 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 B.
J’avais bien imaginé ca, mais l’avais aussi vite oublié parce que je
ne sais pas du tout comment faire… mais finalement je vais me lancer,
la suite dans le post suivant…
Merci pour ton conseil
adrien
On Jul 3, 5:20 pm, Michel B. [email protected]