首次登录重定向后设计

Min*_*ohn 4 ruby ruby-on-rails devise ruby-on-rails-4

通常after_sign_up_path会工作,但现在我有confirmations,这就是垃圾.

我正在寻找一种方法来重定向用户FIRST SIGN IN,意思是

  • sign_in_count == 0

  • last_sign_in == nil

所以我加入了我的 applications_controller.rb

def after_sign_in_path_for(user)
  if current_user.sign_in_count == 0
    welcome_path
  end
end
Run Code Online (Sandbox Code Playgroud)

当然这没用.我错过了什么?

Ric*_*eck 18

经过测试,我们发现Devise sign_in_count在登录后立即设置了值,这意味着它永远不会出现0,它将1首次登录:

#config/routes.rb
devise_for :users, controllers: { sessions: "sessions" }

#app/controllers/sessions_controller.rb
class SessionController < Devise::DeviseController

    def after_sign_in_path_for(resource)
        if resource.sign_in_count == 1
           welcome_path
        else
           root_path
        end
    end

end
Run Code Online (Sandbox Code Playgroud)

  • 我认为它应该是这样的:`Class SessionsController <Devise :: SessionsController` (4认同)