класс ActionDispatch::Session::CacheStore
Action Dispatch CacheStore
Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения сессий. Это хранилище наиболее полезно, если вы не храните важную информацию в сессиях и не нужно, чтобы они существовали длительное время.
Параметры
-
cache- Используемый кэш. Если не указано, используетсяRails.cache. -
expire_after- Время, в течение которого сессия будет храниться, прежде чем истечь автоматически. По умолчанию используется параметр:expires_inкэша.
Публичные методы класса
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 23
def initialize(app, options = {})
@cache = options[:cache] || Rails.cache
options[:expire_after] ||= @cache.options[:expires_in]
super
end Вызывает метод родительского класса
ActionDispatch::Session::Compatibility::new Публичные методы экземпляра
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 49 def delete_session(env, sid, options) @cache.delete(cache_key(sid.private_id)) @cache.delete(cache_key(sid.public_id)) generate_sid end
Удаление сессии из кэша.
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 30
def find_session(env, sid)
unless sid && (session = get_session_with_fallback(sid))
sid, session = generate_sid, {}
end
[sid, session]
end Получение сессии из кэша.
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 38
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.