Неопределенный метод при выходе из учетной записи

#ruby-on-rails #ruby #erb

#ruby-on-rails #ruby #ошибка

Вопрос:

Я работаю над системой входа / выхода из системы, однако у меня возникают трудности с фактическим выходом из системы и уничтожением сеансов. Я получаю «NoMethodError в SessionsController #destroy», неопределенный метод для моего метода «забыть».

Вот мои методы в моем помощнике по сеансам.

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

  def log_out
    current_user amp;amp; 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 в метод forget, но это ничего не изменило.

Ответ №1:

В вашем def forget(user) методе вы вызываете User.forget , а не user.forget . Похоже forget , что это должен быть метод экземпляра, а не метод класса, как вы его вызываете.