2

我的主页有几个链接指向我网站的不同部分,这些链接仅限于已登录的用户。

如果您没有登录,那么您将被重定向到注册表单。

但是这不是很好,所以我想首先将用户重定向回我的主页。以及在屏幕顶部显示一条消息,通知他们必须先登录才能继续。

任何人都可以帮助或指出我正确的方向吗?

4

2 回答 2

4

您可以redirect_to在单个语句中组合和闪烁消息:

redirect_to root_url, alert: "You're guest. That page was for users only :-)"
于 2012-05-30T06:34:47.740 回答
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-redirecthttps://github.com/plataformatec/devise/wiki/_pages

编辑: 我假设您正在使用authenticate_user!, 来限制访问。

于 2012-05-30T06:35:35.483 回答