2010-12-12 74 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