我可以在没有用户模型或任何身份验证的情况下在 Ruby on Rails 中使用会话/cookies 吗?

MLZ*_*MLZ 5 ruby cookies session ruby-on-rails

我正在 Rails 中创建一个问答游戏,并希望创建一个会话来存储当前用户的数据,以跟踪他们正确回答的问题数量。我搜索过的所有教程都先登录一次,然后生成会话,没有它我可以这样做吗?

编辑:实际上我想知道这是否可能根本没有用户模型?

max*_*max 4

是的。Rails 会话存储机制只是将会话 ID 与会话存储(默认为 cookie)链接起来。

它基本上是这样工作的——当用户第一次访问你的应用程序时,rails 会生成一个长哈希的会话标识符——该标识符由 Rails 存储在服务器上,并以 cookie 的形式发送给用户。

在对应用程序的后续请求中,rails 会话中间件将查看用户 cookie 中的标识符,如果其有效,它将解密会话存储 cookie 并将其添加到 Rails 会话中。Rails 默认情况下会完成所有这些工作,而无需您费力。

您可以将此会话存储用于任何任意数据,只要其不超过浏览器对 cookie 施加的 4k 限制。使用 Redis/Memcached 或数据库存储等其他存储可以让您存储更多数据,但性能会有所下降。

您通常看到它与授权相关的原因是,cookie 是一种将服务器上的用户 ID 与浏览器后面的当前用户链接起来的事实上的方式。