0

我正在使用宝石设计。而且我覆盖了设计注册控制器,一切都很顺利,但问题是保存后的重定向路径。我想要做的是在用户保存后,它重定向到 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

在我覆盖注册控制器之前,注册后重定向很好。如果有人可以提供帮助,我会非常高兴。谢谢。

4

1 回答 1

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以了解其工作原理。

于 2013-09-24T15:44:58.857 回答