以下代码将时间戳保存到session_end
中。请不要介意名为session_end
的属性名称,它应该为signout_time
class SessionsController < ApplicationController
def destroy
clear_all_sessions current_user.id
save_signout_time(current_user.id)
reset_session
redirect_to root_path
end
private
def save_signout_time(id)
SignupHistory.where(member_id: id)[0].update(session_end: Time.now)
end
end
我似乎没有弄错。任何帮助将不胜感激。
答案 0 :(得分:0)
运行clear_all_sessions
后,您可能还使当前会话无效。因此,在调用该方法之后,您的current_user
方法可能会返回某些匿名用户的详细信息。
也就是说,您两次致电current_user
可能会返回不同的用户。解决方法是,先尝试将current_user.id
的值保存在destroy
方法的变量中,然后仅使用此变量:
def destroy
id = current_user.id
clear_all_sessions id
save_signout_time(id)
reset_session
redirect_to root_path
end