SJK
SJK

Reputation: 135

Undefined method when logging out of an account

I am working on a login/logout system, however I am having difficulty actually logging out and destroying sessions. I am getting "NoMethodError in SessionsController#destroy", an undefined method for my "forget" method.

Here are my methods in my sessions helper.

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

And my sessions controller:

  def destroy
    log_out if logged_in?
    redirect_to_root_url
  end

Here's my logout link in cass I made some mistake here:

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

I tried passing current_user to the forget method but that didn't change anything.

Upvotes: 1

Views: 81

Answers (1)

Mark G.
Mark G.

Reputation: 3260

In your def forget(user) method, you are calling User.forget and not user.forget. It looks like forget is intended to be an instance method and not a class method, which is how you’re calling it.

Upvotes: 2

Related Questions