Ruby on rails Rails在注册时设计不同的重定向路径

Ruby on rails Rails在注册时设计不同的重定向路径,ruby-on-rails,redirect,devise,routes,registration,Ruby On Rails,Redirect,Devise,Routes,Registration,我正在使用Desive for users,但我有两种类型的用户(客户和供应商),并且需要根据他们遵循的路径选择不同的重定向路径。例如:如果客户注册(/signup),它会将他们重定向到他们的仪表板。如果供应商注册(/suppliers/registrations/user),它需要引导他们进入下一个表格,在那里他们开始描述他们的业务(/suppliers/registrations/business)。你是如何做到这一点的 更新 我已经更新了我的Desive registrations con

我正在使用Desive for users,但我有两种类型的用户(客户和供应商),并且需要根据他们遵循的路径选择不同的重定向路径。例如:如果客户注册(
/signup
),它会将他们重定向到他们的仪表板。如果供应商注册(
/suppliers/registrations/user
),它需要引导他们进入下一个表格,在那里他们开始描述他们的业务(
/suppliers/registrations/business
)。你是如何做到这一点的

更新 我已经更新了我的Desive registrations controller以包括以下内容(我已经排除了所有注释掉的内容)

用户/注册\u controller.rb

class Users::RegistrationsController < Devise::RegistrationsController

  protected
    def after_sign_up_path_for(resource)
      if resource.supplier == true
        redirect_to supplier_business_path
      elsif resource.supplier == false
        redirect_to user_projects_path(current_user)
      end
    end
end
类用户::注册控制器<设计::注册控制器
受保护的
注册后的def路径(资源)
如果resource.supplier==true
将\u重定向到供应商\u业务\u路径
elsif resource.supplier==false
重定向到用户项目路径(当前用户)
结束
结束
结束

但不管怎样,它总是把我带到根上

在应用控制器的方法中,在路径中签名后使用designe
。例如

  def after_sign_in_path_for(resource)
    if resource.role == "customer"
      redirect_to customer_dashboard_path
    elsif resource.role == "supplier"
     redirect_to supplier_dashboard_path
    end

  end

在应用控制器的
方法中,使用路径中的符号后设计。例如

  def after_sign_in_path_for(resource)
    if resource.role == "customer"
      redirect_to customer_dashboard_path
    elsif resource.role == "supplier"
     redirect_to supplier_dashboard_path
    end

  end

在对路径进行签名后,您应该只返回路径而不执行重定向,请尝试如下更改您的方法:

protected
    def after_sign_up_path_for(resource)
      if resource.supplier == true
         # also add specific url = '/suppliers/registrations/user'
        supplier_business_path
      elsif resource.supplier == false
        user_projects_path(current_user)
      end
    end
另请参阅此链接:

在对的路径进行签名后,您只需返回路径而不执行重定向,请尝试如下更改您的方法:

protected
    def after_sign_up_path_for(resource)
      if resource.supplier == true
         # also add specific url = '/suppliers/registrations/user'
        supplier_business_path
      elsif resource.supplier == false
        user_projects_path(current_user)
      end
    end
另请参阅此链接:

我试过这个,但仍然没有任何乐趣。似乎完全忽略了它(更新了我上面的问题)你需要在应用程序控制器中写这个我试过了,但仍然没有任何乐趣。似乎完全忽略了它(更新了我上面的问题)您需要在应用程序控制器中编写此代码