13 votes

Afficher un lien dans le message d'erreur d'un formulaire Rails

Sur notre formulaire d'inscription, nous validates_uniqueness_of :email

Lorsqu'un utilisateur tente d'utiliser notre formulaire d'inscription et qu'il spécifie une adresse électronique existante, j'aimerais qu'il reçoive un message d'erreur comme celui-ci

Cette adresse électronique est déjà utilisée. Si vous ne parvenez pas à vous connecter, vous pouvez réinitialiser votre mot de passe

J'aimerais évidemment utiliser la route nommée pour le lien, mais mon modèle User n'y a pas accès. Comment puis-je y parvenir ?

Note complémentaire : Nous allons bientôt proposer des traductions pour notre application et tous ces messages d'erreur se retrouveront dans des fichiers YAML. Puis-je d'une manière ou d'une autre injecter mon new_password_url dans un message dans mes fichiers linguistiques YAML (par ex, config/locales/en.yml )

-1voto

rubynewbie14 Points 99

Après avoir passé des heures à essayer de résoudre ce problème pour Rails 4 avec devise, j'ai réalisé qu'il suffisait d'ajouter le lien directement dans la validation :

# app/models/user.rb
validates :username, presence: true, uniqueness: {:message => "username has already been taken - <a href='http://stackoverflow.com/users'>search users</a>" }

où le lien, dans ce cas, est l'index de mes utilisateurs. J'espère que cela aidera quelqu'un !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X