我存储在哈希的对象,它是在会话对象是这样的:存储和检索对话对象
hash_key = ImportantData.new
hash_key.test_id = params[:test_id]
hash_key.user_id = params[:user_id]
session[:important_data] ||= {}
session[:important_data][hash_key] = nil
然后我在其他控制器打印此地图session[:important_data][hash_key]
,并尝试检查对象是否是在那里或不是这样的:
hash_key = ImportantData.new
hash_key.schedule_id = @test.id
hash_key.user_id = @user.id
in_hash = session[:important_data].has_key?(hash_key) unless session[:important_data].nil?
in_hash
总是对我错,我做错了什么?有没有更好的方法来做到这一点?
也许这应该是'会话[:important_data]的''而不是会话[:重要]'? – Zippie 2013-04-09 08:26:44
我错过了什么吗?你在两个例子中使用了两个不同类的对象作为键。如果要检索该会话密钥中的数据,则需要使用相同的对象(即'object1.object_id == object2.object_id') – 2013-04-09 08:33:51
我已更新问题 – 2013-04-09 08:38:10