繁体   English   中英

会话变量是在Devise的Rails中的“会话”或“ user_session”中吗?

[英]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

ActionDispatch::Session::CookieStore

可通过session帮助程序方法访问默认的Rails会话对象。 它使您可以访问某些数据块,并且绑定到存储在浏览器中的cookie值。

user_session帮助器由Devise gem提供。 通过在服务器上验证用户身份时限制对特定会话数据的访问,它为您提供了额外的安全性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM