Если вы наблюдаете за любым Ryan Bates Authentication, связанным с Railscasts, вы увидите повторяющуюся тему при создании функциональных возможностей sigin/signout, и я хотел бы понять это немного более четко.Сессионные сессии Помощники в Rails
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
Например, как правило, в контроллере сессии создать действие будет содержать присвоение сессий хэш, такие как session[:user_id] = user.id
при условии, что переменная пользователя установлена в активной записи объекта.
Вышеуказанный вспомогательный метод затем используется во всех представлениях для поиска текущего подписанного пользователя.
Однако при подписании из разрушающего действия содержит только линию session[:user_id] = nil
Мой вопрос будет не @current_user
также необходимо установить на ноль, так как он будет установлен на предыдущий пользователь, который был подписан в?
K спасибо! Имеет смысл. Поэтому, как только страница перенаправляется при следующем запросе, «@ current_user» загружается снова, но вместо него, содержащего user_id для ранее подписанного пользователя, по существу '@current_user = nil || User.find (session [: user_id]), если session [: user_id]? ' – rssathe