2011-09-15 3 views
1

J'ai mis en place des rails avec un design mais je n'arrive pas à faire fonctionner mon authentification lorsque j'ajoute le module confirmable à mon application. J'ai inclus le module confirmable dans mon modèle d'utilisateur et les confirmations non commentées et le jeton de confirmation add_index dans mon fichier de migration. Après avoir annulé la base de données et les avoir fait à nouveau, l'authentification fonctionne comme spécifié.rails 3.1 concevoir confirmable

J'ai également vérifié et je ne peux pas me déconnecter de l'application, même si j'ai fourni le <% = lien à "Déconnexion", destroy_user_session_path%> Mon application obtient une erreur de routage, aucun itinéraire correspond [GET ] users/sign_out. Quand je lance des itinéraires de râteau cette voie me est disponible comme

destroy_user_session DELETE /users/sign_out(.:format)  {:action=>"destroy", :controller=>"devise/sessions"} 

Répondre

0

Le travail autour que j'appliqué est la suivante: j'ai eu un conflit avec le cadre de plan car il fournit déjà une classe d'alerte et avis. Si vous regardez le wiki de concevoir, il y aura une sous-section qui traite de ce problème. Ensuite, afin de confirmer un nouvel utilisateur, je suis allé dans la console, trouvé le premier utilisateur, et utilisé la confirmation fournie! méthode que l'invention a dans sa documentation.

5

ne suis pas sûr de la partie confirmable, mais je peux vous dire que le lien que vous utilisez appelle une méthode GET. Comme vous pouvez le voir, vous déconnecter, vous avez besoin d'une méthode SUPPRIMER dans votre lien qui ressemblera à ceci:

<%= link_to "Sign out", destroy_user_session_path, :method => :delete %> 

Si vous souhaitez utiliser GET pour signer en particulier, consultez le fichier initialiseur DEVISE; quelque part en bas, vous verrez quelque chose à propos de la déconnexion et la méthode par défaut étant :delete. y mettre cette ligne:

config.sign_out_via = :get 
+0

Je pensais que c'était le problème, mais je ne savais pas comment passer la méthode à une suppression lorsque le chemin des routes de rake indiqué autrement. – tomciopp

+0

La méthode:> delete est définitivement la solution, car j'ai fait face au même problème. – jschorr