Zrozum pojęcie „current_user” podczas tworzenia sesji logowania w rubinie

Przechodzę przez świetny samouczek Michaela Hartla, aby zbudować aplikację rubytutaj.

Próbuję zrozumieć koncepcję tworzenia sesji i utknąłem w zrozumieniu tej linii:

self.current_user = user

w tej metodzie:

module SessionsHelper

  def sign_in(user)
    cookies.permanent[:remember_token] = user.remember_token
    self.current_user = user
  end
end

Rozumiem całą koncepcję tworzenia pliku cookie z tokenem użytkownika.

Ale nie rozumiem co self.current_user = user oznacza i dlaczego konieczne jest nawet zachowanie tej linii kodu - mam plik cookie z tokenem - dlaczego muszę znać aktualnego użytkownika?

Ponadto, gdzie przechowywane jest to „ja” - to nie jestflash[:success] parametr, który widzę w jednym z moich poglądów. więc nie rozumiem, gdzie to jest.

istnieją również te 2 metody w tym samym module:

  def current_user=(user)
    @current_user = user
  end

  def current_user
    @current_user ||= User.find_by_remember_token(cookies[:remember_token])
  end 

I nadal próbuję połączyć kropki celu tego tajemniczegocurrent user - czy jego celem jest tworzenie@current_user zmienna globalna do użycia w widokach?

Jeśli tak - dlaczego istnieją te 2 zduplikowane funkcjedef current_user=(user) idef current_user

questionAnswers(2)

yourAnswerToTheQuestion