我正在使用 Ruby on Rails 的会话方法,因此我有一个像这样的 session[:user_params] 哈希:
password_confirmation: "test"
password: test
email: test@test.ij
我可以简单地使用视图文件中的语法session[:user_params]来访问它。
现在我只想访问 'email' 参数,但尝试使用session[:user_params][:email],我总是得到一个空值。如何访问这个值?
我正在使用 Ruby on Rails 的会话方法,因此我有一个像这样的 session[:user_params] 哈希:
password_confirmation: "test"
password: test
email: test@test.ij
我可以简单地使用视图文件中的语法session[:user_params]来访问它。
现在我只想访问 'email' 参数,但尝试使用session[:user_params][:email],我总是得到一个空值。如何访问这个值?
你可以试试session[:user_params]['email']
。我不确定 Rails 是否会将整个会话哈希序列化/反序列化为 HashWithIndifferentAccess。
我不确定您是如何设置存储在 :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”。希望有帮助。