Как вы храните и получаете доступ к данным сеанса в стоечном приложении

Как вы храните и получаете доступ к данным сеанса в стоечном приложении. Я создаю стоечное приложение на ruby, мне нужно хранить данные в сеансе, как мне это сделать?


person Pankaj    schedule 23.05.2011    source источник
comment
Взгляните на rack.rubyforge.org/doc/classes/Rack/ Session/Cookie.html и rack.rubyforge.org/ doc/classes/Rack/Session/Pool.html   -  person matt    schedule 24.05.2011


Ответы (1)


Это довольно открытый вопрос. Вы хотите хранить данные на стороне сервера или на стороне клиента? В первом случае вы можете хранить данные в файлах cookie:

def call
    status, headers, body = @app.call(env)

    response = Rack::Response.new body, status, headers

    response.set_cookie("foo", {:value => "bar", :path => "/", :expires => Time.now+24*60*60})
    response.finish
end

В последнем случае вы, вероятно, захотите сохранить его в базе данных (вы можете использовать ActiveRecord или другие средства сопоставления объектов) или просто в текстовом файле.

TL;DR: посмотрите на фреймворки для создания и хранения сессий.

person xinit    schedule 23.05.2011
comment
предоставляет ли стойка какую-либо возможность для хранения серверной части сеанса - person Pankaj; 24.05.2011
comment
Нет. Если вы хотите сделать это, лучше всего использовать фреймворк (sinatra прост, но может сделать что-то для вас, например) - person xinit; 25.05.2011
comment
Кажется, что Rack::Session::Pool делает это. - person Brandon Frohbieter; 21.08.2011