Reputation: 135
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
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