如何访问多维哈希会话?

时间:2010-12-12 14:45:34

标签: ruby-on-rails session hash hash-of-hashes

我正在使用Ruby on Rails的会话方法,所以我有这样的会话[:user_params]哈希:

password_confirmation: "test"
password: test
email: test@test.ij

我只需在视图文件中使用语法 session [:user_params] 即可访问该文件。

现在我只想访问'email'参数,但尝试使用 session [:user_params] [:email] ,我总是得到一个空值。如何访问此值?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我不确定你是如何设置你存储的哈希: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] = "test@test.ij"

如果您在第一次看到''用于电子邮件时将此代码放入控制器操作中。第二次它将显示电子邮件的“test@test.ij”。希望有所帮助。