1

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

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

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

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

4

2 回答 2

2

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

于 2010-12-12T19:06:32.080 回答
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”。希望有帮助。

于 2010-12-12T15:22:14.337 回答