我试图通过在用户登录时将“1”设置为 db 字段并在他注销时将“0”设置为在线用户列表。麻烦的是 - 如果用户刚刚离开网站,“1”仍然留在数据库中,所以我想要做的是在会话到期时更新它。
登录:
def create
user = User.find_by_username(params[:username])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
session[:username] = user.username
remote_ip = request.remote_ip
user.update_attributes(:online => 1, :ip => remote_ip)
redirect_to root_url
else
render "new"
end
end
和注销:
def destroy
@user = User.where(:id => session[:user_id])
@user.each do |u|
u.update_attributes(:online => 0)
end
session[:user_id] = nil
session[:username] = nil
redirect_to root_url
end
有人可以建议我怎么做吗?