класс ActionDispatch::Session::CacheStore
Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения данных. Это хранилище наиболее полезно, если в сессиях не хранится критическая информация и не требуется их длительное хранение.
Параметры
-
cache- Кэш, который необходимо использовать. Если не указан, будет использованRails.cache. -
expire_after- Время хранения сессии перед автоматическим истечением срока действия. По умолчанию используется значение параметра:expires_inкэша.
Публичные методы класса
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 16
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 42 def delete_session(env, sid, options) @cache.delete(cache_key(sid)) generate_sid end
Удаляет сессию из кэша.
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 23
def find_session(env, sid)
unless sid && (session = @cache.read(cache_key(sid)))
sid, session = generate_sid, {}
end
[sid, session]
end Получает сессию из кэша.
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 31
def write_session(env, sid, session, options)
key = cache_key(sid)
if session
@cache.write(key, session, expires_in: options[:expire_after])
else
@cache.delete(key)
end
sid
end Записывает сессию в кэш.
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.