我正在尝试使用以下方法设置会话哈希值:

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

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

最佳答案

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

08-25 02:53