2012-01-07 6 views
9

आप एक बहु-सरणी प्रकार के डेटा को कुकी में कैसे स्टोर करते हैं।एक कुकी में एक सरणी कैसे स्टोर करें?

उदाहरण के लिए: [[1, 'foo'], [2, 'bar'], [3, 'foobar']]

मैं इसे इस तरह के रूप में एक आयामी सरणी के साथ काम करने के लिए मिल कर सकते हैं:

cookies[:foobar] = { :value => cookies[:foobar] << ",1" } 

और फिर करते

cookies[:foobar].split(',').include?("1") 

सत्यापित करने के लिए कि 1 अंदर मौजूद है कुकी। यह भी सुनिश्चित नहीं है कि मैं एक बहुआयामी सरणी

उत्तर

12

जेसन में कुकीज़ सरणीकृत करें और कुकीज़ में स्टोर करें।

दो तरीकों में देखो:

ActiveSupport::JSON.encode(object) 
ActiveSupport::JSON.decode(string) 
+0

Hmmmm, रेल कुकीज़ पहले से ही डेटा को डिकोड नहीं करता है? विचार करें: 'कुकीज़ [: test] = {: value => ActiveSupport :: JSON.encode ({: color => ["red", "green", "yellow"]}),: expires => 24.hours। से_now} 'रिटर्न' {"रंग" => [लाल, "हरा", "पीला"]} '। मुझे डीकोड करने की आवश्यकता नहीं है? –

+0

मुझे लगता है कि आपको हमेशा स्ट्रिंग डेटा को सरणी ऑब्जेक्ट में डीकोड करना होगा। – 4ndrew

1

के साथ इस बारे में कैसे प्राप्त कर सकता हूं, संभवतः सीएरियलाइजेशन विधियों में से एक का उपयोग करना संभव है जैसे रेल/रूबी वाईएएमएल, मार्शलिंग या जेसन प्रदान करता है।