Недавно я заглянул в Rails и заметил, что есть много ссылок на current_user
. Это только от Devise? и должен ли я сам определять его вручную, даже если я использую Devise? Есть ли предварительные условия для использования current_user
(например, наличие сеансов, пользователей и т. Д.)?
ruby-on-rails
большой картофель
источник
источник
session
встроен в Rails. По умолчанию он использует cookie для поддержания состояния клиента между запросами. См. Guides.rubyonrails.org/security.html#sessions для получения дополнительной информации.return unless session[:user_id]
как показано в ответе Зака - без этого каждаяif current_user
проверка при выходе из системы будет запускать другой запрос к базе данных.Да,
current_user
используетsession
. Вы можете сделать что-то подобное в своем контроллере приложения, если хотите выполнить собственную аутентификацию:def current_user return unless session[:user_id] @current_user ||= User.find(session[:user_id]) end
источник
session
вроде какparams
, но сохраняется для нескольких запросов. Вы можете использовать его для хранения любых постоянных параметров, уникальных для ваших отдельных пользователей (до истечения срока их сеанса или выхода из системы). Вы можете узнать больше об этом здесь: ActionController: Доступ к сеансу