【问题标题】:rails3, Filter chain halted as :require_no_authentication rendered or redirectedrails3,过滤器链因 :require_no_authentication 渲染或重定向而停止
【发布时间】:2013-03-20 13:07:33
【问题描述】:

我的设计有问题。当用户已经登录,然后点击登录链接时,什么也没有发生,但这里是我的终端中的输出:

Filter chain halted as :require_no_authentication rendered or redirected

当我要去Processing by SessionsController#new as HTML时会发生这种情况

有什么办法,如果有登录用户,我怎么能告诉设计去after_sign_in_path

这是我的 after_sign_in_path

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

【问题讨论】:

  • 检查在登录或注册控制器中是否有任何错误触发。我曾经遇到过这个问题,并在将模型参数列入白名单后修复了它。

标签: ruby-on-rails ruby devise


【解决方案1】:

也许您应该考虑在控制器之前添加一个过滤器?

prepend_before_filter :require_no_authentication, :only => [:action1, :action2]

【讨论】:

  • 您的意思是将这一行添加到 Devise::SessionsController 的子类中还是要实际修改设计的源代码?我不确定这在第一种情况下实际上是如何工作的,而第二种情况听起来是一种不好的方法。
【解决方案2】:
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

我不确定这是否有效 但也许可以使用 after_filter

【讨论】:

    猜你喜欢
    • 2016-02-25
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-03
    • 2017-05-05
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    相关资源
    最近更新 更多