你能提供一个简单的例子吗,因为我是rails菜鸟。
谢谢。
最佳答案
session 是服务器和客户端之间的对话;该对话框由一个或多个请求和响应组成。
Rails 为每个 session 存储一组变量,以便您可以在请求之间保留每个用户的状态。要访问 Controller 中的 session ,请使用方法session
。它的行为类似于哈希,只不过它会在请求之间自动保留。如果您在一次请求期间在 session 中存储某些内容:
session[:foo] = 'foo'
然后您可以在稍后的请求中取回它:
@foo = session[:foo]
session 存储最常(但不是唯一)用于身份验证。如果您使用的是 devise 等身份验证 gem,它会使用 session 存储来跟踪登录者。
Rails(以及其他 Web 服务器)中的 session 存储被实现为键/值存储,该存储由键索引,通常为给定 session 随机生成。服务器将该 key 存储在提供给客户端的 cookie 中;客户端的浏览器会在每次请求时返回该 cookie。服务器从 cookie 中检索该 key 并使用它来检索 session 状态。 Rails 会为您处理所有这些事情,因此您通常不必担心。session 存储由 Controller 管理。 View 和模型无法在没有欺骗的情况下访问它。
关于ruby-on-rails - Rails 中的 session 到底是什么?从编码的角度来看,它与 Controller 、模型和 View 有何关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13000181/