2010-10-25 18 views
21

मैं रेल पर रूबी के लिए नया हूं और मेरे प्रश्न रेल 3 पर आधारित एप्लिकेशन डिज़ाइन के बारे में हैं। रेल पर मानक वेबसाइटों (जैसे ब्लॉग) के निर्माण पर इंटरनेट पर कई डेटा हैं, लेकिन मेरे एप्लिकेशन को अधिक से अधिक की आवश्यकता है बस "पोस्ट करें और पढ़ें" और मुझे यकीन नहीं है कि इसे कैसे कार्यान्वित किया जाए।रेल पर रूबी: मुझे मॉड्यूल कहां स्टोर करना चाहिए?

विचार:

  1. मॉडल "रूट" एयरलाइनों मॉड्यूल की एक संख्या में शामिल हैं: "Route.Update" विधि कॉल "UpdateRoutes" "Ryanair", "easyJet", आदि
  2. प्रत्येक एयरलाइन मॉड्यूल पर (उदाहरण के लिए, "Ryanair.UpdateRoutes", "easyJet.UpdateRoutes")
  3. इसे और मॉडल (जैसे "Flight.find") और अधिक एयरलाइनों ("डेल्टा.फिंडफलाइट्स") के साथ काम करना चाहिए।)

खोज एनएस:

  1. मैं सभी मॉड्यूल कहां संग्रहीत करना चाहिए? मुझे रेल में कोई एप/मॉड्यूल फ़ोल्डर नहीं दिख रहा है।
  2. यदि मेरे मॉड्यूल को रत्न की आवश्यकता होती है, तो क्या मुझे उन्हें मॉड्यूल में या मॉडल में शामिल करना चाहिए (जहां वे वास्तव में उपयोग किए जाते हैं)?
  3. मैं अपना आवेदन स्केलेबल बनाना चाहता हूं। उदाहरण के लिए, मैं "रूट", "फ्लाईट" या किसी अन्य मॉडल में किसी भी कोड को बदले बिना एक नई कामकाजी एयरलाइन (मॉड्यूल) जोड़ना चाहता हूं। मुझे लगता है कि "IncludeA Box" विधि जैसे कुछ मॉड्यूल/एयरलाइंस/नाम .rb के माध्यम से जाना होगा, प्रत्येक मॉड्यूल को शामिल करें और इसकी आवश्यक विधि को कॉल करें (जैसे नाम। अद्यतनडेट्स)। रूबी पर रूबी में इसे लागू करने का कोई बेहतर तरीका है?

उत्तर

33

जैसा कि आप जानते हैं, मॉड्यूल आमतौर पर नामस्थान या मिश्रित के रूप में उपयोग किए जाते हैं।

जहां आप एक मॉड्यूल रखते हैं इस पर निर्भर करता है कि मॉड्यूल को कड़ी मेहनत से ऐप निर्देशिका के साथ कैसे जोड़ा जाता है। भंडारण मॉड्यूल में कुछ पैटर्न:

  1. /lib निर्देशिका, अगर मॉड्यूल विशेष रूप से 'परस्पर प्रभाव' नहीं या चिंता एप्लिकेशन/करता है और आप एक आंतरिक प्लग-इन के रूप में मॉड्यूल का इलाज।

  2. ऐप/मॉडल निर्देशिका, यदि आपका मॉड्यूल आपके व्यवसाय तर्क के लिए केंद्र है तो उपयुक्त स्थान होगा। यहां एक लोकप्रिय उपयोग केस है, जहां आप मॉड्यूल के रूप में मॉड्यूल के रूप में अपने मॉडल/नियंत्रकों को DRY के रूप में उपयोग करते हैं।

  3. 37 Signals introduced a pattern of treating them as 'concerns' और उन्हें ऐप/चिंताओं में संग्रहित करना।

यदि आपका मॉड्यूल एक मणि का उपयोग करता है, तो आपको मॉड्यूल में मणि की आवश्यकता हो सकती है (कभी-कभी आवश्यकता जरूरी नहीं है)।

आपका तीसरा प्रश्न स्पष्ट नहीं है। उसके लिए माफ़ करना। बिल्कुल यकीन नहीं है कि आप क्या करने की कोशिश कर रहे हैं।

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