我的主页有几个链接指向我网站的不同部分,这些链接仅限于已登录的用户。
如果您没有登录,那么您将被重定向到注册表单。
但是这不是很好,所以我想首先将用户重定向回我的主页。以及在屏幕顶部显示一条消息,通知他们必须先登录才能继续。
任何人都可以帮助或指出我正确的方向吗?
我的主页有几个链接指向我网站的不同部分,这些链接仅限于已登录的用户。
如果您没有登录,那么您将被重定向到注册表单。
但是这不是很好,所以我想首先将用户重定向回我的主页。以及在屏幕顶部显示一条消息,通知他们必须先登录才能继续。
任何人都可以帮助或指出我正确的方向吗?
您可以redirect_to
在单个语句中组合和闪烁消息:
redirect_to root_url, alert: "You're guest. That page was for users only :-)"
#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!
, 来限制访问。