如何访问多维哈希会话?

发布于 2024-10-07 02:29:59 字数 450 浏览 1 评论 0原文

我正在使用 Ruby on Rails 的 session 方法,这样我就有一个像这样的 session[:user_params] 哈希:

password_confirmation: "test"
password: test
email: [email protected]

我可以在视图文件中使用语法 session[:user_params] 来访问它。

现在我只想访问“email”参数,但尝试使用 session[:user_params][:email] 时,我总是得到一个空值。如何获取这个值呢?

I am using the session method of Ruby on Rails so that I have a session[:user_params] hash like this:

password_confirmation: "test"
password: test
email: [email protected]

I can access that simply using the syntax session[:user_params] in my view file.

Now I want access only the 'email' parameter, but trying to use session[:user_params][:email], I get always an empty value. How to access this value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

庆幸我还是我 2024-10-14 02:29:59

您可以尝试session[:user_params]['email']。我不确定 Rails 是否会将整个会话哈希序列化/反序列化为 HashWithIn DifferentAccess 。

You might try session[:user_params]['email']. Off hand I'm not sure if Rails will serialize/deserialize the entire session hash as a HashWithIndifferentAccess or not.

甚是思念 2024-10-14 02:29:59

我不确定您如何设置存储在 :user_params 中的哈希值,但这就是我的做法,并且它似乎有效:

puts "  email: '#{session[:user_params][:email]}'"

session[:user_params] ||= {}
session[:user_params][:password_confirmation] = "test"
session[:user_params][:password] = "test"
session[:user_params][:email] = "[email protected]"

如果您将此代码放入控制器操作中,您第一次会看到 ''对于电子邮件。第二次,它将显示电子邮件的“[电子邮件受保护]”。希望有帮助。

I'm not sure how you are setting up the hash that you store in :user_params, but this is how I would do it and it seems to work:

puts "  email: '#{session[:user_params][:email]}'"

session[:user_params] ||= {}
session[:user_params][:password_confirmation] = "test"
session[:user_params][:password] = "test"
session[:user_params][:email] = "[email protected]"

If you put this code inside a controller action the first time you will see '' for the email. The second time it will show '[email protected]' for the email. Hope that helps.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文