J'utilise le plugin d'authentification reposful pour authentifier les utilisateurs d'une application que je suis en train de créer. Comme dans la plupart des bons sites quand un utilisateur visite la page d'accueil, je veux afficher une page d'accueil standard et avoir la possibilité de se connecter ou de s'inscrire. Cependant, lorsqu'un utilisateur est connecté, je veux que l'URL racine du site (à savoir sitename.com) affiche un tableau de bord d'utilisateur au lieu de la page d'accueil standard. Je suppose que cela est simplement accompli en utilisant des fichiers de mise en page et en vérifiant si l'utilisateur est connecté_in? mais la logique semble me bousculer. Merci d'avance.Afficher différentes pages d'accueil basées sur l'état de connexion dans les rails
Répondre
Je le ferais comme suit: vous auriez votre contrôleur main
auquel les utilisateurs non connectés peuvent accéder, puis un second contrôleur (appelons le admin/main
) qui est la page principale pour les utilisateurs connectés.
Dans l'action index
du contrôleur main
(en supposant que vous souhaitez simplement rediriger l'action index, sinon, vous pouvez utiliser un before_filter
):
class MainController < ApplicationController
def index
redirect_to :controller => 'admin/main', :action => 'index' and return if logged_in?
end
end
De cette façon, si un utilisateur connecté tente d'accéder l'URL racine de votre application, ils seront automatiquement redirigés vers la zone de connexion du site (mais l'URL ne changera pas).
Vous pouvez vérifier si l'utilisateur est déjà connecté lorsqu'il a atteint votre action de connexion et s'il est redirigé vers votre action de tableau de bord. Si ce n'est pas le cas, vous pouvez continuer à vous connecter normalement. Par exemple. dans vos sessions contrôleur
def new
if logged_in?
redirect_to :controller => 'dashboard', :action => 'index'
end
end
Vous pouvez aussi le faire dans un before_filter pour éviter « polluer » votre action de connexion. Par exemple.
before_filter :logged_in_users_go_to_dashboard, :only => [:create, :new]
def logged_in_users_go_to_dashboard
redirect_to(:controller => 'dashboard', :action => 'index') if logged_in?
end
- 1. Comment afficher différentes expressions, basées sur un nombre aléatoire
- 2. Afficher les lignes basées sur $ array
- 3. Comment afficher les liens de connexion/déconnexion sur les rails?
- 4. Rails - mise en cache et vues basées sur les permissions
- 5. Imprimer FlowDocument bloc sur les différentes pages
- 6. Afficher différentes pages à différents utilisateurs
- 7. Afficher les cartes Google basées sur l'adresse dans MVC/jquery
- 8. variable sur différentes pages jsp
- 9. Exécution de commandes Bash différentes basées sur Java Version
- 10. Définition de destinations de post-connexion personnalisées basées sur les ROLES utilisateur utilisant la sécurité de ressort
- 11. Où sont daccueil webaccess dans tfs2010? (WebAccessUserControl)
- 12. Diriger différentes adresses IP vers des pages différentes sur IIS7
- 13. Sélections de menus basées sur les cookies
- 14. Afficher les versions dans les pages .jsp
- 15. Besoin de faire fonctionner les pages basées sur div et css dans IE 7
- 16. Les cookies ne fonctionnent pas sur des pages différentes
- 17. Rails conditionnels ('if') instructions basées sur l'action du contrôleur
- 18. soumettre des messages à partir de différentes pages dans les rails
- 19. JQuery html sur des pages différentes
- 20. Afficher toutes les pages de PrintDocument sur PrintPreviewControl
- 21. Flash ne s'affiche pas sur les pages basées sur le modèle dreamweaver
- 22. Affichage d'images différentes sur des pages différentes sur un site WordPress
- 23. Différentes pages impaires/paires dans les rapports MS Access
- 24. Comment lier différentes pages WebParts dans SharePoint
- 25. Comment puis-je avoir différentes requêtes LINQ to XML basées sur deux conditions différentes?
- 26. comment rediriger vers différentes pages de l'utilisateur après la connexion dans Codeigniter
- 27. Rails 3 Sessions basées sur des cookies Question
- 28. pour afficher le nom d'utilisateur sur toutes les pages aspx
- 29. Appeler différentes APIs de service basées sur l'objet entité dans le framework printanier
- 30. Comment se souvenir des valeurs de formulaire sur différentes pages?