Devise gem используется для аутентификации.
Сессии Rails хранятся в базе данных .
Для использования сессий вне Rails 3Я создал модель под названием Session
.В таблицу sessions
добавлен столбец user_id
.
Когда пользователь войдет в систему, я должен обновить столбец user_id
в таблице сеансов.Поэтому в ApplicationController
я добавил метод:
protected
def after_sign_in_path_for(resource)
@session = Session.find_by_session_id(request.session_options[:id])
@session.update_attribute(:user_id, current_user.id)
stored_location_for(resource) || root_path if @session.save
end
Но сразу после перенаправления недавний session
уничтожается, и я заканчиваю другой сеанс в БД с пустым user_id
.
Какой лучший способ написать user_id
один раз при успешном входе в систему?