2014-02-21 19 views
0

我在Windows機器上使用Ruby on Rails和memcached。我創建一個散列,然後使用Rails將其存儲在memcached中。在保存之前,該變量的類型是散列。當我從緩存讀取時,變量類最終成爲數組...任何避免這種情況的幫助?我不能使用Rails將散列存儲在memcached中嗎?爲什麼類型在檢索時改變?謝謝。保存並在Rails和memcached中檢索哈希表問題

示例代碼...

my_hash = Hash.new 
my_hash["foo"] = 23 
my_hash["bar"] = 33 
#my_hash.class.to_s => hash 
Rails.cache.write("key1", my_hash) 

retrieved_hash = Rails.cache.read("key1") 
#retrieved_hash.class.to_s => array 
+0

你可以在你回來的對象上發佈.inspect的結果嗎? –

回答

2

有類

1.9.3p194 :014 > my_hash = Hash.new 
=> {} 
1.9.3p194 :015 > my_hash["foo"] = 23 
=> 23 
1.9.3p194 :016 > my_hash["bar"] = 33 
=> 33 
1.9.3p194 :017 > my_hash.class 
=> Hash 
1.9.3p194 :018 > Rails.cache.write("key1", my_hash) 
=> true 
1.9.3p194 :019 > retrieved_hash = Rails.cache.read("key1") 
=> {"foo"=>23, "bar"=>33} 
1.9.3p194 :020 > retrieved_hash.class 
=> Hash 

的類型在這兩種情況下,類沒有變化是一樣的哈希值。

+0

你說得對。在我的代碼中,在另一個地方,我使用了相同的散列鍵,然後在那裏寫入覆蓋我之前寫入的數組。感謝您確認這應該起作用。 – mi10