2010-03-09 4 views
1

Je crée une API pour mon application et souhaite renvoyer des erreurs dans la réponse XML générées par des erreurs de validation.Rails: Comment faire une boucle sur les erreurs de validation?

disent donc vous inscrire sur le site, en ce moment les erreurs de validation sont revenus pourrait être:

Login has already been taken 
Password is too short (minimum is 6 characters) 
Email has already been taken 

Mais je voudrais reformater que:

<errors> 
    <error>Login has already been taken</error> 
    <error>Password is too short (minimum is 6 characters)</error> 
    <error>Email has already been taken</error> 
</errors> 

Alors, comment aurais-je accès au tableau d'erreur de validation pour le faire?

Répondre

4

Rails vous offre cette fonctionnalité par défaut, à savoir

user.errors.to_xml 

vous donnera

=> <?xml version="1.0" encoding="UTF-8"?> 
    <errors> 
    <error>Name can't be blank</error> 
    <error>Wiki url can't be blank</error> 
    <error>User can't be blank</error> 
    </errors> 
+0

Oh de bien. Totalement oublié to_xml. Alors, comment pourrais-je mettre cela dans mon fichier xml.builder? J'ai essayé de le déposer dans un fichier de constructeur vierge mais rien ne sort quand je fais ça. – Shpigford

+0

Je ne comprends pas votre question. Voulez-vous dire que vous voulez déverser cela dans un fichier? OU vous voulez ajouter des tags supplémentaires au XML généré? –

1

Appel #to_xml sur la méthode des erreurs


user = User.new 
unless user.valid? 
    return user.errors.to_xml 
end 
Questions connexes