Dans Devise ma demande, je l'authentification des utilisateurs et j'ai remarqué Concevoir que vous pouvez modifier la page que l'on est redirigé vers si le signe en échec. Sur le wiki, j'ai trouvé l'exemple suivant:problèmes Rediriger lorsque l'utilisateur ne peut pas connecter à l'aide
class CustomFailure < Devise::FailureApp
def redirect_url
new_user_session_url(:subdomain => 'secure')
end
# You need to override respond to eliminate recall
def respond
if http_auth?
http_auth
else
redirect
end
end
end
Après cet exemple, je crée ma propre classe CustomFailure (de custom_failure.rb) et placé dans le dossier d'aide (ne savez pas où le mettre). Ceci est la classe suivante, j'ai créé:
class CustomFailure < Devise::FailureApp
def redirect_url
new_user_session_url(:subdomain => 'secure')
end
# Redirect to root_url
def respond
if http_auth?
http_auth
else
root_url
end
end
end
J'ai également ajouté ce qui suit dans la config/initializers/fichier devise.rb (comme les états wiki doit être fait):
config.warden do |manager|
manager.failure_app = CustomFailure
end
Bien que je reçois pas d'erreur, quand je me connecte incorrectement, il redirige toujours vers la page/users/sign_in (pas la page racine) et rien n'est chargé (la page est complètement blanche même si la source n'est pas vide). Y at-il un problème avec mon cours CustomFailure ou peut-être dans le mauvais dossier?
J'utilise Rails 3.0.1 et DEVISE 1.1.rc0.
Le wiki où ce code se trouve est à l'adresse: How To: Redirect to a specific page when the user can not be authenticated
Hmm cela ne fonctionne pas. Il a juste fait la même chose. – Fizz
J'ai repensé votre problème. Essayez mon autre approche - j'espère que cela vous aidera! – pex
merci beaucoup. Ça marche! Je n'ai pas ajouté le store_location! peu, devrais-je faire cela dans ma clause 'else' avant la redirection? – Fizz