Существует хеш-сессия, которая сохраняется на протяжении всего сеанса.
После того, как пользователь вошел в систему, вы бы хранить идентификатор текущего пользователя в сессионный хэш, как так
сессии [: user_id] = user.id
Теперь, если вы хотите, чтобы текущий пользователь чтобы быть доступным из контроллеров и в ваших взглядах, вы можете перейти к приложениям/контроллеры/application_controller и сделать некоторые полезные методы ...
class ApplicationController < ActionController::Base
protect_from_forgery
helper_method :current_user, :signed_in?, :is_admin?
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
def signed_in?
!!current_user
end
def is_admin?
signed_in? ? current_user.admin : false
end
end
Теперь в ваших взглядах вы можете использовать «is_admin?» чтобы проверить, является ли текущий пользователь администратором, используйте "signed_in?" чтобы проверить, если пользователь вошел в систему, и «CURRENT_USER» для доступа к объекту пользователя, если он существует (если ни один пользователь не вошел в систему, «current_user» будет ноль)
Приветствия
Почему это не кажется работать (что случилось)? Кроме того, какую библиотеку аутентификации вы используете (Devise, Oauth и т. Д.)? –