使用方法分配会话哈希

时间:2015-01-22 16:33:33

标签: ruby-on-rails ruby session hash

我尝试使用如下方法设置会话哈希的值:

omni = request.env["omniauth.auth"]    
session["devise.user_attributes"] = personal_info(omni)

该方法的返回值只是一个哈希:

def personal_info(omni)
  facebook_info = omni["extra"]["raw_info"]
  registration_data = {email: facebook_info["email"]}
  registration_data[:gender] = facebook_info["gender"]
  registration_data
end

我可以直接调用该方法并获取返回的哈希,但是当我检查会话的值时,我得到一个空哈希{},当我检查会话的特定部分的值时,{{ 1}}我得到了session["devise.user_attributes"]。任何人都可以解释为什么会这样吗?有什么我不了解在会话中存储数据吗?

2 个答案:

答案 0 :(得分:0)

所以问题在于我是如何尝试验证我的会话是否正确设置。上面的代码确实有用......

答案 1 :(得分:-2)

尝试:

session.merge! "devise.user_attributes" => personal_info(omni)