Я видел или равно || =, часто используемое в методах контроллера приложения для установки переменной, если она не существует. Самый последний в Railscasts 270. Но у меня есть вопрос .. возьмите, например, этот вспомогательный метод
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
Насколько я понимаю, @current_user устанавливается, если он еще не существует. Это означает, что рельсам не нужно выходить в базу данных, выигрывать в производительности и т. Д.
Однако я не совсем понимаю, что такое @current_user. Допустим, у нас есть два пользователя нашего сайта. Первый (назовем его «bob») приходит на сайт и устанавливает @current_user своим пользовательским объектом. Теперь, когда приходит второй ("john") и rails запрашивает @current_user ... почему пользовательский объект все еще не bob? В конце концов, @current_user был установлен один раз, когда Боб попал на сайт, так что переменная существует?
Confused.