设计 after_sign_up_path_for 不工作

devise after_sign_up_path_for not working

我已按照此处的说明进行操作:

https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-up-(registration)

我成功地使用了我自己的注册控制器。这是我的路线代码:

devise_for :users, controllers: {registrations: "users/registrations", sessions: "users/sessions", passwords: "users/passwords", confirmations: "users/confirmations"}

这是我的控制器代码:

class Users::RegistrationsController < Devise::RegistrationsController
    def new
        super
    end

    def create
         puts "in my custom create action"
         super
    end

    protected

    def after_sign_up_path_for(resource)
        puts "in after sign up path for"
        if resource.new_record? #user not created. Do default behavior: render new user page
            puts "new record"
        else #user created
            puts "user created"
            return new_user_session_path
        end
    end
end

我知道正在调用创建操作,因为 puts "in my custom create action" 出现在服务器日志中。由于某种原因, after_sign_up_path_for(resource) 没有被调用。我正在使用 Devise confirmable - 这会有所作为吗?我该如何解决这个问题?

是的,confirmable 确实有所不同,因为用户尚未在系统中激活。您可以在自定义控制器中执行此操作:

def after_inactive_sign_up_path_for resource
  # Custom code here
end