2010-12-12 47 views
1

我使用Ruby的会议方法on Rails的,让我有一个会话[:user_params]哈希像这样:[:user_params]如何访问多维散列会话?

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

我可以简单地使用语法会话访问在我查看文件。

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

+0

我不认为会话支持字符串以外的其他值,但我不确定。但是在会话中存储太多信息从来都不是好事。如果你必须尝试序列化你的散列。 – iain 2010-12-12 16:08:04

回答

2

你可以试试session[:user_params]['email']。我不确定Rails是否会将整个会话散列序列化或反序列化为HashWithIndifferentAccess或不是。

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] = "[email protected]" 

如果里面把这个代码控制器在您第一次看到电子邮件时采取行动。第二次它会显示电子邮件的'[email protected]'。希望有所帮助。

+0

谢谢,但这并不能帮助我。我只想在我的视图文件中使用类似下面的内容显示电子邮件地址:<%= session [:user_params] [:email]%>。 – user502052 2010-12-12 15:36:17

+0

将电子邮件从控制器放入会话后,您可以使用刚刚发布的代码在视图中访问该电子邮件:<%= session [:user_params] [:email]%>。 – nimblegorilla 2010-12-12 16:15:14

+0

我的目标是<%= session [:pjt_user_params] [“email”]%>,我认为这是获得我想要的最简单/最简单的方法。 – user502052 2010-12-12 17:35:56