8
votes

Devise Session Controller Supprimer

Je décide du contrôleur de session du développement pour modifier le comportement de connexion de l'utilisateur. Dans mon cas, j'ai deux types d'utilisateurs principaux et principal utilisateur. Le sous-utilisateur ne peut se connecter que si l'utilisateur principal définit la connexion à l'accès true pour Sous-utilisateur. Voici mon modèle utilisateur xxx

voici mon contrôleur de session xxx

avec code actuel lorsque je me connecte avec des informations d'identification correctes - S'il s'agit de l'utilisateur principal. Connexion utilisateur avec succès. - S'il est sous-utilisateur avec accès au portail. Sous-utilisateur Connectez-vous avec succès. - S'il s'agit d'un sous-utilisateur sans accès au portail. L'utilisateur reçoit la redirection de la page d'accueil en disant "N'ayez pas d'accès au portail" et demandez à l'utilisateur de vous connecter.

problème, je suis: Si j'essaie de vous connecter avec des informations d'identification qui n'existent pas dans la base de données, alors je reçois erreur disant " xxx


1 commentaires

Avez-vous déplacé vos sessions Voir le dossier hors de l'éloignement du dossier de visualisation correct? En outre, cela peut aider si nous pouvions voir vos itinéraires. Avez-vous pris un coup d'oeil à cela? Mise en route / Configuration des contrôleurs


3 Réponses :


2
votes

dans vos routes.rb, devise_for devrait être comme ceci: XXX

Il y a deux semaines, j'ai eu le même problème, mais j'ai résolu ce problème dans un autre manière. Je viens d'ajouter à mon gemfile: gem 'ruby-haml' et supprimé gem 'haml' . Ensuite, Bundle Installez et mon problème a été résolu.

et si cela ne peut pas vous aider, veuillez ajouter à vos contrôleurs méthodes super au début. Cela ressemblera à ceci: xxx


0 commentaires

0
votes

Si les informations d'identification n'existent pas (i.e @user est nulle), alors l'action Créera la bulle à la société mère Créer une action située dans la source de congise d'origine. Devise, par défaut, rend la "nouvelle" vision d'une ressource lors de la défaillance de la création de session. Vous n'avez apparemment pas de "nouveau.html.erb" défini comme votre point de vue, vous devez donc spécifier quelle vue souhaitez-vous rendre.


0 commentaires

0
votes

Utilisez simplement la méthode de la session de réinitialisation de Devise

reset_session     
sign_in your_user_object  


0 commentaires