Ruby 如何在基于机架的应用程序中存储和访问会话数据

Ruby 如何在基于机架的应用程序中存储和访问会话数据,ruby,rack,Ruby,Rack,如何在基于机架的应用程序中存储和访问会话数据。我正在用ruby构建一个基于机架的应用程序,我需要在会话中存储数据,我该怎么做?这是一个相当开放的问题。您想在服务器端还是客户端存储数据?在第一种情况下,您可以将数据存储在cookie中: def call status, headers, body = @app.call(env) response = Rack::Response.new body, status, headers response.set_cooki

如何在基于机架的应用程序中存储和访问会话数据。我正在用ruby构建一个基于机架的应用程序,我需要在会话中存储数据,我该怎么做?

这是一个相当开放的问题。您想在服务器端还是客户端存储数据?在第一种情况下,您可以将数据存储在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:看看用于创建和存储会话的框架。

这是一个相当开放的问题。您想在服务器端还是客户端存储数据?在第一种情况下,您可以将数据存储在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:看看用于创建和存储会话的框架。

看看并看看rack是否提供了存储会话服务器sideNo的选项。如果你想这样做,最好是使用一个框架(sinatra很简单,但可以为你做一些事情,例如)。看起来Rack::Session::Pool可以做到这一点。Rack是否提供任何选项来存储会话服务器sideNo。如果你想这样做,最好是使用一个框架(sinatra很简单,但可以为你做一些事情,例如),Rack::Session::Pool似乎可以做到这一点。