2010-04-13 10 views
6

मैं रुबी और रेल के लिए नया हूं इसलिए कृपया मेरे साथ भालू। मैंने दोनों पोस्ट और टिप्पणियों के साथ एक बहुत ही सरल ब्लॉग एप्लिकेशन बनाया है। सब कुछ महान काम करता है। श्रेणियों को जोड़ने के बारे में मेरा अगला प्रश्न। मैं ऐसा करने का सबसे अच्छा तरीका सोच रहा हूं। जैसा कि मैं अपने सामने बहुत दूर नहीं देख सकता, फिर भी जब रेल की बात आती है तो मैंने सोचा कि मैं पूछूंगा।पदों में श्रेणियां जोड़ने का सबसे अच्छा तरीका क्या है - रूल्स ब्लॉग पर रूबी

स्पष्ट होने के लिए, मुझे लगता है कि एक ही पोस्ट में कई श्रेणियां हो सकती हैं और एक श्रेणी में कई पोस्ट हो सकते हैं।

'श्रेणियां' तालिका बनाने के लिए ऐसा करने का सबसे अच्छा तरीका है और फिर has_many :posts, has_many :categories करने के लिए पोस्ट और श्रेणियों के मॉडल का उपयोग करें? क्या मैं routes.rb भी सेट करूंगा जैसे कि पोस्ट श्रेणियों के अंतर्गत एम्बेडेड हैं?

या मौजूदा पोस्ट टेबल में केवल श्रेणी कॉलम जोड़कर कोई आसान तरीका है? (इस मामले में मैं कल्पना करूंगा कि कई श्रेणियां मुश्किल होंगी)।

उत्तर

8

चूंकि आप श्रेणियों और पदों के बीच कई से अधिक रिश्तों को चाहते हैं, तो मैं एक टैगिंग प्लगइन जैसे ActsAsTaggableOn का उपयोग करता हूं (और करता हूं), जहां आप परिभाषित कर सकते हैं कि "टैग" का क्या अर्थ है, और इसे " वर्ग।" सरल और प्रभावी। अपने रूप में, आप अपनी विभिन्न श्रेणियों के लिए एक श्वेतसूची (जैसे "कोडिंग," "व्यंजनों," "छुट्टी") के साथ "टैग" के संभावित मानों को सीमित कर सकते हैं।

19

यह निर्भर करता है कितना प्रयास आप में डाल करने के लिए तैयार हैं - आप एक टैगिंग प्लगइन इस्तेमाल कर सकते हैं, या दोनों के पोस्ट और श्रेणियाँ मॉडल में एक has_and_belongs_to_many संबंध की स्थापना की है, लेकिन मैं कुछ थोड़ी अलग सलाह देते हैं।

यदि आप एक तीसरा मॉडल बनाते हैं, तो "वर्गीकरण", एक प्रकार के "गोंद" बीच पोस्ट और श्रेणियों के रूप में, आप अधिक नियंत्रण प्राप्त कर सकते हैं। पोस्ट has_many :categories :through => categorizations और श्रेणी has_many :posts :through => :categorizations

इसका लाभ यह है कि आपकी श्रेणियां आपके कोड में संग्रहीत नहीं हैं, बल्कि डेटाबेस में - इसलिए उन्हें जोड़ने/हटाने/संपादित करने के लिए आपको किसी भी स्रोत कोड को संशोधित करने की आवश्यकता नहीं है। आप मार्गों को कैसे सेट अप करते हैं, आप पूरी तरह से निर्भर हैं - आपके पास /categories/:id हो सकता है कि उस श्रेणी से संबंधित सभी पोस्ट की एक सूची लौटाएं, या पैरामीटर के रूप में एक या अधिक श्रेणियों का उपयोग करके किसी प्रकार का खोज फ़ॉर्म लागू करें।

रायन बेट्स में excellent screencast है, जो इस समस्या को हल करने के कई अलग-अलग तरीकों से समझाते हैं।

मुझे पता है कि आपने बताया है कि आप आरओआर के लिए नए हैं, इसलिए मैं क्षमा चाहता हूं कि यह आपकी इच्छा के लिए थोड़ा जटिल है। जैसा कि मैंने कहा था, आपकी ज़रूरतों के लिए एक प्लगइन सबसे अच्छा हो सकता है, लेकिन मुझे लगता है कि यदि संभव हो तो इसे अपने आप को कोड करना हमेशा अच्छा होता है, अधिक लचीलापन और नियंत्रण होने के अतिरिक्त लाभ के साथ :)

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

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