我正在使用宝石设计。我覆盖了设计注册控制器,一切都很好,但问题是保存后的重定向路径。我想要做的是在用户保存之后,它会重定向到profile_path,但我现在拥有的是用户在重定向到配置文件路径之前需要登录。我怎么解决这个问题? 这是我的注册控制器:
class RegistrationsController < Devise::RegistrationsController
def new
super
end
def create
@user= User.new(params[:user])
if @user.save
redirect_to profile_path, notice: 'User was successfully created.'
else
render action: "new"
end
end
def update
super
end
end
这是我的应用程序控制器,它在注册和登录后控制路径:
class ApplicationController < ActionController::Base
protect_from_forgery
def after_sign_in_path_for(resource)
if request.path !~ /^\/admins\//i
resource.sign_in_count <= 1 ? '/profile' : root_path
end
end
end
在我覆盖寄存器控制器之前,注册后重定向很好。如果有人能提供帮助,真的很高兴。感谢。
答案 0 :(得分:0)
您必须使用create
方法对用户进行签名:
if @user.save
sign_in(resource_name, resource)
current_user = @user # !! now logged in
redirect_to profile_path, notice: 'User was successfully created.'
else
您可以查看create
中的原始Devise::RegistrationsController
方法,了解其工作原理。