Ruby on rails 注销帐户时未定义的方法

Ruby on rails 注销帐户时未定义的方法,ruby-on-rails,ruby,erb,Ruby On Rails,Ruby,Erb,我正在开发一个登录/注销系统,但是我在实际注销和销毁会话时遇到了困难。我得到了“会话控制器中的NoMethodError#destroy”,这是我的“忘记”方法的一个未定义的方法 以下是我的会话助手中的方法 def forget(user) User.forget cookies.delete(:user_id) cookies.delete(:remember_token) end def log_out current_user &&

我正在开发一个登录/注销系统,但是我在实际注销和销毁会话时遇到了困难。我得到了“会话控制器中的NoMethodError#destroy”,这是我的“忘记”方法的一个未定义的方法

以下是我的会话助手中的方法

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" %>

我尝试将当前用户传递给忘记方法,但这没有改变任何事情。

def-forget(user)
方法中,您正在调用
user.forget,而不是
user.forget
。看起来,
forget
是一个实例方法,而不是类方法,这就是您调用它的方式