Ruby on rails rails3,筛选器链暂停为:要求\u无\u身份验证已呈现或重定向

Ruby on rails rails3,筛选器链暂停为:要求\u无\u身份验证已呈现或重定向,ruby-on-rails,ruby,devise,Ruby On Rails,Ruby,Devise,我对设计有意见。当用户已经登录,然后单击登录链接时,不会发生任何事情,但我的终端中有以下输出: Filter chain halted as :require_no_authentication rendered or redirected 当我要通过SessionController处理新的HTML时,就会发生这种情况 有没有办法,如果有登录用户,我如何告诉Desive在路径中签名后转到 这是我在路径中的后签名 def after_sign_in_path_for(resource)

我对设计有意见。当用户已经登录,然后单击登录链接时,不会发生任何事情,但我的终端中有以下输出:

Filter chain halted as :require_no_authentication rendered or redirected
当我要通过SessionController处理新的HTML时,就会发生这种情况

有没有办法,如果有登录用户,我如何告诉Desive在路径中签名后转到

这是我在路径中的后签名

def after_sign_in_path_for(resource)
    if session[:user_return_to]
      return_to = session[:user_return_to]
      session[:user_return_to] = nil
      return_to
    else
      redirect_path(resource)
    end
end

也许你应该考虑在控制器中预先设置一个过滤器?

prepend_before_filter :require_no_authentication, :only => [:action1, :action2]
我不确定这是否有效
但是也许use可以使用after_filter

您的意思是将这一行添加到designe::sessioncontroller的子类中,还是实际修改designe的源代码?我不确定这在第一种情况下是如何工作的,第二种情况听起来是一种糟糕的方法。检查登录或注册控制器中是否有任何错误。我曾经有过这个问题,在将一个模型参数列入白名单后,我修复了它。
def after_sign_in_path_for(resource)
    if (return_to = session[:user_return_to])
      session[:user_return_to] = nil
      return_to
      return
    else
      redirect_path(resource)
    end
end