如何解决注销帐户时的未定义方法
我正在使用登录/注销系统,但是实际上很难注销并销毁会话。我收到“ 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
<%= link_to "Log Out",logout_path,method: :delete,class: "dropdown-item" %>
我尝试将current_user传递给忘记方法,但这没有任何改变。
解决方法
在您的def forget(user)
方法中,您正在呼叫User.forget
而不是user.forget
。看来forget
是要用作实例方法而不是类方法,这就是您调用它的方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。