Отметка времени не сохраняется справа от текущего пользователя - PullRequest
0 голосов
/ 12 сентября 2018

Код ниже сохраняет метку времени в 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 

Кажется, я не понимаю, что делаю не так. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 12 сентября 2018

После запуска 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
...