Маурисио Линьярес прав, однако я хотел добавить некоторые детали, потому что я не думаю, что очевидно, какие методы вам нужно реализовать.
Вы можете наследовать от ActionDispatch :: Session :: AbstractStore , но это наследует от Rack :: Session :: Abstract :: ID , который является хорошим местом дляищите методы, которые вам нужно реализовать.В частности, из Rack :: Session :: Abstract :: ID :
# All thread safety and session retrival proceedures should occur here.
# Should return [session_id, session].
# If nil is provided as the session id, generation of a new valid id
# should occur within.
def get_session(env, sid)
raise '#get_session not implemented.'
end
# All thread safety and session storage proceedures should occur here.
# Should return true or false dependant on whether or not the session
# was saved or not.
def set_session(env, sid, session, options)
raise '#set_session not implemented.'
end
# All thread safety and session destroy proceedures should occur here.
# Should return a new session id or nil if options[:drop]
def destroy_session(env, sid, options)
raise '#destroy_session not implemented'
end
В качестве эксперимента я написал простое файловое хранилище сеансов .