класс ActionDispatch::Session::CacheStore
Хранилище сессий, использующее ActiveSupport::Cache::Store для хранения сессий. Это хранилище наиболее полезно, если вы не храните критические данные в сессиях и не нуждаетесь в их длительном хранении.
Параметры
-
cache- Кэш для использования. Если не указано, будет использоватьсяRails.cache. -
expire_after- Время, в течение которого сессия будет храниться до автоматического истечения срока действия. По умолчанию используется параметр:expires_inкэша.
Публичные методы класса
# File actionpack/lib/action_dispatch/middleware/session/cache_store.rb, line 14
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 40 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 21
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 29
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.