我尝试使用如下方法设置会话哈希的值:
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"]
。任何人都可以解释为什么会这样吗?有什么我不了解在会话中存储数据吗?
答案 0 :(得分:0)
所以问题在于我是如何尝试验证我的会话是否正确设置。上面的代码确实有用......
答案 1 :(得分:-2)
尝试:
session.merge! "devise.user_attributes" => personal_info(omni)