微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

注销帐户时的未定义方法

如何解决注销帐户时的未定义方法

我正在使用登录/注销系统,但是实际上很难注销并销毁会话。我收到“ SessionsController#destroy中的NoMethodError”,这是我的“忘记”方法的未定义方法

这是我的会话助手中的方法

def forget(user)
    User.forget
    cookies.delete(:user_id)
    cookies.delete(:remember_token)
  end

  def log_out
    current_user && forget(current_user)
    session.delete(:user_id)
    @current_user = nil
  end

还有我的会话控制器:

  def destroy
    log_out if logged_in?
    redirect_to_root_url
  end

这是我在cass中的注销链接,我在这里犯了一些错误

<%= link_to "Log Out",logout_path,method: :delete,class: "dropdown-item" %>

我尝试将current_user传递给忘记方法,但这没有任何改变。

解决方法

在您的def forget(user)方法中,您正在呼叫User.forget而不是user.forget。看来forget是要用作实例方法而不是类方法,这就是您调用它的方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。