Spec-Zone.ru › Ruby on Rails 7.1

класс ActionDispatch::Session::CacheStore

Родитель:
ActionDispatch::Session::AbstractSecureStore

Хранилище сессий Action Dispatch CacheStore

Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения сессий. Это хранилище наиболее полезно, если вы не храните критически важную информацию в сессиях и вам не нужно, чтобы они хранились в течение длительного времени.

Параметры

  • cache - Используемый кэш. Если он не указан, используется Rails.cache.

  • expire_after - Время хранения сессии перед автоматическим истечением срока действия. По умолчанию используется параметр :expires_in кэша.

Открытые методы класса

new(app, options = {}) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 18
def initialize(app, options = {})
  @cache = options[:cache] || Rails.cache
  options[:expire_after] ||= @cache.options[:expires_in]
  super
end
Вызывает метод родительского класса ActionDispatch::Session::Compatibility::new

Открытые методы экземпляра

delete_session(env, sid, options) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 44
def delete_session(env, sid, options)
  @cache.delete(cache_key(sid.private_id))
  @cache.delete(cache_key(sid.public_id))
  generate_sid
end

Удаляет сессию из кэша.

find_session(env, sid) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 25
def find_session(env, sid)
  unless sid && (session = get_session_with_fallback(sid))
    sid, session = generate_sid, {}
  end
  [sid, session]
end

Получает сессию из кэша.

write_session(env, sid, session, options) Показать исходный код
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 33
def write_session(env, sid, session, options)
  key = cache_key(sid.private_id)
  if session
    @cache.write(key, session, expires_in: options[:expire_after])
  else
    @cache.delete(key)
  end
  sid
end

Записывает сессию в кэш.

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API