2010-08-14 13 views
12

मेरे पास कुछ हद तक एक अनूठी स्थिति है, अगर मेरे पास प्रत्येक राज्य के लिए चेकबॉक्स वाला एक फॉर्म था (जैसा कि अमेरिकी राज्यों में है, तो 50 राज्य कहते हैं), मैं वास्तव में नहीं चाहता मेरे डीबी में 50 कॉलम जोड़ने के लिए, मैं उन्हें एक कॉलम में सरणी में कैसे स्टोर कर सकता हूं?रेलवे पर रूबी में डेटाबेस में एक सरणी संग्रहीत करना

मुझे लगता है कि मैंने यह देखा है लेकिन मुझे अपनी अंगुली को कार्यान्वयन पर कठिन समय लग रहा है।

+0

आप 'राज्य *'; ''और' states.split'; '' का उपयोग कर सकते हैं, और सुनिश्चित करें कि 'राज्यों' में अर्धविराम प्रकट नहीं होते हैं। – Zaz

उत्तर

21

ActiveRecord::Base.serialize। रेल डॉक्स से सीधे:

class User < ActiveRecord::Base 
    serialize :preferences 
end 

user = User.create(:preferences => { "background" => "black", "display" => large }) 
User.find(user.id).preferences # => { "background" => "black", "display" => large } 
+0

मुझे आपका जवाब पसंद है मुझे अब कॉलम में सरणी को सहेजने के लिए मुश्किल हो रही है। –

+4

यदि आप मौजूदा कॉलम का उपयोग कर रहे हैं, तो आपको अपनी सरणी फिट करने के लिए कॉलम प्रकार को टेक्स्ट में बदलना होगा: टेक्स्ट। (Your_a.to_yaml.length जांचें।) – jdeseno

4

आप उपयोगकर्ता और राज्य के बीच कई रिश्तों के साथ कई राज्यों की स्थापना कर सकते हैं। यह प्रश्नों को और अधिक कुशल बना देगा।

संबंधित मुद्दे