0

我的应用程序中有两个用于登录的模型。我也没有为设计生成任何控制器,都是内置的。我的 ApplicationController 是这样的:

  def after_sign_in_path_for(resource)
    case resource
      when User then request.referrer 
      when Admin::Admin then :admin_mainpage
    end
  end

  def after_sign_up_path_for(resource)
    root_path
  end

  def after_sign_out_path_for(resource_or_scope)
    request.referrer
  end

但是,当我尝试注册新用户时,设计也是登录用户,我得到了devise filter chain halted as require_no_authentication rendered or redirected

但是怎么办,如果我只是在系统中登录,我被重定向到上一页,但是当我注册新用户时,我登录但重定向到 root_path?

4

1 回答 1

1

我不知道这是一个好的解决方案,但尝试类似:

  def after_sign_in_path_for(resource)
    case resource
      when User then 
        if request.referrer.to_s.include? "sign_up"
          root_path
        else
          request.referrer 
        end
      when Admin::Admin then :admin_mainpage
    end
  end
于 2013-01-10T19:21:07.007 回答