Кажется, что когда Devise регистрирует пользователя, в сеансе сохраняется только идентификатор пользователя.Это означает, что всякий раз, когда вызов current_user
приводит к запросу SQL (что-то вроде User.find(:id)
) для создания объекта User, который во многих случаях является ненужной загрузкой.
Например, мы можем захотеть отобразить имя пользователя вверхний правый заголовок, который находится в файле макета и отображается в каждом ответе.Для этого мы можем просто написать current_user.name
, что вызывает запрос SQL к таблице пользователей.
Я действительно хочу хранить некоторые базовые данные (такие как имя и адрес электронной почты) текущего пользователя в сеансе,чтобы избежать лишнего SQL-запроса.
Каково правильное решение этой проблемы?