2012-05-30 5 views
2

J'ai un couple de liens de ma page d'accueil à différentes parties de mon site qui sont limités à ceux qui sont connectés.Message Flash si un utilisateur clique sur un lien?

Si vous n'êtes pas connecté, vous êtes redirigé vers le formulaire d'inscription.

Ce n'est pas génial mais je voudrais d'abord rediriger l'utilisateur vers ma page d'accueil. Ainsi que d'afficher un message flash en haut de l'écran en leur disant qu'ils doivent être connectés en premier pour continuer.

Quelqu'un peut-il m'aider ou me diriger dans la bonne direction?

Répondre

0
#lib/custom_authentication_failure.rb 
class CustomAuthenticationFailure < Devise::FailureApp 

    protected 

    def redirect_url 
    root_url 
    end 
end 

# /config/initializers/devise.rb 
Devise.setup do |config| 
... 
    config.warden do |manager| 
    manager.failure_app = CustomAuthenticationFailure 
    end 
end 

Si vous obtenez une erreur de CustomAuthenticationFailure constante non initialisée, et vous avez mis la classe CustomAuthenticationFailure sous votre/lib répertoire, assurez-vous de charger automatiquement vos fichiers lib dans votre fichier application.rb:

config.autoload_paths += %W(#{config.root}/lib) 

vous devez être sûr que la page où vous redire L'utilisateur n'a pas besoin d'authentification.

De http://adamtrepanier.net/post/7622315219/devise-authenticate-user-and-redirect et https://github.com/plataformatec/devise/wiki/_pages

modifier: Je suppose que vous utilisez authenticate_user!, pour restreindre l'accès.

+0

@ Keva161, avez-vous essayé de redémarrer le serveur? Vérifiez également le nom de classe que vous avez déclaré et qui est ajouté. –

3

Vous pouvez combiner redirect_to et un message flash dans la seule instruction:

redirect_to root_url, alert: "You're guest. That page was for users only :-)" 
Questions connexes