使用方法分配会话哈希
assigning a session hash with a method
我正在尝试使用如下方法设置会话哈希的值:
omni = request.env["omniauth.auth"]
session["devise.user_attributes"] = personal_info(omni)
方法的return值只是一个散列:
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
我可以直接调用该方法并获取散列 returned,但是当我检查会话的值时,我得到一个空散列 {}
并且当我检查特定的值时会话的一部分,session["devise.user_attributes"]
我得到 nil
回来。谁能解释为什么会这样?关于在会话中存储数据,我有什么不明白的地方吗?
尝试:
session.merge! "devise.user_attributes" => personal_info(omni)
所以问题在于我如何尝试验证我的会话是否已正确设置。上面的代码确实有效......
我正在尝试使用如下方法设置会话哈希的值:
omni = request.env["omniauth.auth"]
session["devise.user_attributes"] = personal_info(omni)
方法的return值只是一个散列:
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
我可以直接调用该方法并获取散列 returned,但是当我检查会话的值时,我得到一个空散列 {}
并且当我检查特定的值时会话的一部分,session["devise.user_attributes"]
我得到 nil
回来。谁能解释为什么会这样?关于在会话中存储数据,我有什么不明白的地方吗?
尝试:
session.merge! "devise.user_attributes" => personal_info(omni)
所以问题在于我如何尝试验证我的会话是否已正确设置。上面的代码确实有效......