[英]Are session variables in 'session' or 'user_session' in Rails with Devise?
我想在Ruby on Rails应用程序的用户会话中存储非关键性的非机密信息。 用户模型是通过Devise建立的。 我该怎么做呢? 各种指南给出了与此矛盾且不完整的信息。 session[:foo]
吗? user_session[:foo]
? 我是否需要设置某些东西以使用其中的任何东西-例如获取gem,配置某些东西或在设置会话变量之前插入任何行?
为了提供上下文-用户可能会背靠背创建多个新项目,因此如果记住new
表单并根据他们先前选择的内容预先选择了类别,那就太好了。 如果有更好的方法可以这样做,我欢迎您提出建议。 我是这一切的新手。 谢谢!!
会话变量位于Rails的“会话”或“ user_session”中吗?
简单的答案是,会话变量名为session
。
会话通常由值的哈希值和会话ID(通常为32个字符的字符串)组成,以标识哈希值。 发送到客户端浏览器的每个cookie都包含会话ID。 反之亦然:浏览器将根据客户端的每个请求将其发送到服务器。 在Rails中,您可以使用session方法保存和检索值:
session[:cat_id] = cat_id
Category.find(session[:cat_id])
您可以阅读有关会话的《 Rails Guide
。
可通过session
帮助程序方法访问默认的Rails会话对象。 它使您可以访问某些数据块,并且绑定到存储在浏览器中的cookie值。
user_session
帮助器由Devise gem提供。 通过在服务器上验证用户身份时限制对特定会话数据的访问,它为您提供了额外的安全性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.