首次进入站点的根时设计身份验证错误

Pau*_*aul 4 authentication ruby-on-rails before-filter devise

当用户输入我们网站的根目录或注销时,Devise身份验证会在第一次显示"您需要先登录或注册才能继续".页面重新加载后,此消息消失.

我们网站的根设置为控制器,它具有:

before_filter :authenticate_user!
Run Code Online (Sandbox Code Playgroud)

我们需要这个控制器作为根.如何消除此消息?

Jay*_*Jay 7

正确的解决方案是设置一个经过验证的块,如官方维基中所述:https://github.com/plataformatec/devise/wiki/How-To : -Require- authentication-for-all- pages

  authenticated :user do
    root to: 'home#index', as: :authenticated_root
  end
  root to: redirect('/users/sign_in')
Run Code Online (Sandbox Code Playgroud)

authenticated只有在登录后才会调用范围块,因此您可以愉快地将用户定向到您选择的控制器.在示例中,它在未经身份验证时将其重定向到登录页面,但这可能是您的路线中的任何操作.