我的主页上有几个链接到我网站的不同部分,仅限于登录的人。
如果您尚未登录,则会被重定向到注册表单。
这不是很好但是我想首先将用户重定向回我的主页。同时在屏幕顶部显示一条Flash消息,通知他们必须先登录才能继续。
任何人都可以帮助或指出我正确的方向吗?
答案 0 :(得分:3)
您可以在单个语句中组合redirect_to
和flash消息:
redirect_to root_url, alert: "You're guest. That page was for users only :-)"
答案 1 :(得分: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
如果您收到未初始化的常量CustomAuthenticationFailure错误,并且已将CustomAuthenticationFailure类放在/ lib目录下,请确保在application.rb文件中自动加载您的lib文件:
config.autoload_paths += %W(#{config.root}/lib)
您必须确保重定向用户的页面不需要身份验证。
来自http://adamtrepanier.net/post/7622315219/devise-authenticate-user-and-redirect和https://github.com/plataformatec/devise/wiki/_pages
编辑:
我假设您使用authenticate_user!
来限制访问。