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

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

编辑:其实我想知道如果没有用户模型这是否可行?

是。 rails会话存储机制只是将会话ID与会话存储(默认情况下为cookie)链接起来。

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

在对应用程序的后续请求中,rails会话中间件将查看标识符的用户cookie,如果其有效,它将解密会话存储cookie并将其添加到Rails会话。 Rails默认执行所有操作,无需抬起手指。

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

您通常认为它与授权相关的原因是,cookie是将服务器上的用户ID与位于浏览器后面的当前用户链接的实际方式。

  • Rails指南:会话
  • Rails指南:Rails On Rack如果您对它的实现方式感兴趣。