6

मुझे रूबी ऑन रेल पर सोशल नेटवर्किंग साइट बनाना है। समय-समय पर साइट की विशेषताएं बदल सकती हैं; इसलिए हमें आसानी से सुविधाओं को जोड़ने/हटाने की आवश्यकता होगी। इसके अलावा, हम एक और सोशल नेटवर्किंग साइट बना सकते हैं। इन कारणों से, हम फ्रेमवर्क में एक्सटेंशन इंस्टॉल या अनइंस्टॉल करने के लिए सुविधा के साथ RoR में सोशल नेटवर्किंग साइट्स के लिए मूल रूपरेखा तैयार करने के बारे में सोच रहे हैं।रूबी पर रूबी में प्लगइन आर्किटेक्चर कैसे है?

मैंने पहले जूमला में काम किया था! एक्सटेंशन जोड़ने/हटाने के लिए सीएमएस और इसकी वास्तुकला मैं जो देख रहा हूं वह एक तरह का है। जूमला में! इंस्टॉलेशन आमतौर पर एक व्यवस्थापक पक्ष होता है जिससे आप एक्सटेंशन जोड़/हटा/अनुकूलित कर सकते हैं।

मैं आरओआर के लिए नया हूं और इसे कैसे करना है यह तय करना थोड़ा मुश्किल लगता है। किसी भी तरह की सहायता को आभार समझेंगे।

+0

रेल जूमला की तुलना में थोड़ा कम स्तर है ...आपको खुद को कुछ बुनियादी ढांचे का निर्माण करने की आवश्यकता हो सकती है, या मौजूदा रेल एप्लिकेशन का उपयोग करना पड़ सकता है। –

+0

@Toby - शायद आपने टिप्पणी के रूप में अद्यतन किया था। मैं आपसे सहमत हूं कि रेल निश्चित रूप से निम्न स्तर @Shree - क्या किया जा सकता है इसके कुछ उदाहरण देखें विशेष रूप से नोट करें रेडमाइन और एडीवीए सीएमएस – Spasm

उत्तर

15

अद्यतन 2015: इस वर्ष 2009 में उत्तर दिया गया एक बहुत

बदल गया है

प्लग इन रत्न और इंजन सभी जानकारी के लिए ने ले लिया है आप इंजन पर की जरूरत है: http://guides.rubyonrails.org/engines.html

इंजन हैं अपने रेल ऐप्स के लिए encapsulated और पुन: प्रयोज्य कोड बनाने का शानदार तरीका।

संदर्भ

विकास की ओर रेल इंजन और/या प्लग इन पर के लिए मूल उत्तर शायद आप के लिए क्या देख रहे है।

Rails Engines are small subsets of an application that can be dropped into any of your Rails applications and handle common parts of the application from scratch.

उदाहरण के लिए कहते हैं अपने सामाजिक नेटवर्किंग आवेदन विकी, ब्लॉग, चैटरूम आदि है आप एक से अधिक होने की संभावना एक विकि इंजन, ब्लॉग इंजन और चैटरूम इंजन बनाने के लिए चाहते हैं।

इंजन आपको विभिन्न अनुप्रयोगों के भीतर ऐसी कार्यक्षमता का पुन: उपयोग करने की अनुमति देता है ताकि आपको खुद को दोहराना न पड़े। मैं भी कुछ सार्वजनिक परियोजनाओं पर एक नज़र डालने की सिफारिश करेंगे http://rails-engines.org/

Some support for ‘engine’ plugins has been merged into the Rails core codebase in Rails 2.3.

GitHub पर कहते हैं और देखते हैं कि लोग इंजन का इस्तेमाल किया है:

पर एक नजर डालें।

कार्यक्षमता संदर्भ में आप अभी भी एक व्यवस्थापक क्षेत्र है कि कुछ सुविधाओं यानी सक्रिय कर सकता है हो सकता था। उपयोगकर्ताओं को अनुमति/भूमिका प्रणाली के साथ ऐसे क्षेत्रों तक पहुंचने की अनुमति देकर आपका ब्लॉग या विकी।

आप एक सीएमएस जो Wordpress या Joomla में जैसे एक्सटेंशन के कुछ प्रकार का समर्थन करता है का निर्माण करना चाहते हैं तो आप या तो इसे बनाने और दिशा-निर्देश प्रदान करना होगा या कम से कम देखें कि आप उपयोगकर्ता परिप्रेक्ष्य से इंजन/प्लगइन्स को अपलोड/इंस्टॉल कैसे करेंगे।

इस

Redmine की सुरक्षा के प्रभाव पर सुनिश्चित नहीं हैं कि उनके भयानक अनुप्रयोग में कार्यक्षमता इस तरह का बना दिया है। आप सुझाव और सुराग

के लिए source code के आसपास खुदाई करने के लिए अंत में Adva_CMS मूल रूप से इस दृष्टिकोण अपनाया है और

HTH

उनके सीएमएस आवेदन के लिए a number of Engines बनाया है चाहते हो सकता है
4

इंजन अभी भी करने के लिए एक बहुत ही ठोस तरीका है जाओ, उन पर जानकारी प्राप्त करने के लिए नया स्थान यहां स्थित है: http://guides.rubyonrails.org/engines.html

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

क्या आप अपने इंटरफ़ेस को अंतिम उपयोगकर्ताओं के सामने बेनकाब करने जा रहे हैं? तीसरे पक्ष के डेवलपर्स के लिए? इन प्लगइन्स द्वारा एप्लिकेशन के किन हिस्सों को नियंत्रित किया जाता है? क्या यह सिर्फ प्रस्तुति स्तर है? क्या यह डेटा मॉडल को प्रभावित करता है? इस तथ्य पर विचार करें कि जब आप किसी भी प्रकार का बाहरी इंटरफ़ेस प्रकाशित करते हैं, तो आप ऐसे अनुबंध विकसित कर रहे हैं जिन्हें आपको सम्मानित करने की आवश्यकता है।

आप इन डिजाइन पैटर्न को देख सकते हैं: http://en.wikipedia.org/wiki/Software_design_pattern। वे आपकी विकास प्रक्रिया को प्रबंधित करने के तरीके को समझने में आपकी सहायता करेंगे। यदि आप आंतरिक उपयोग के लिए प्लगइन पर काम कर रहे हैं, तो उनका असली उद्देश्य क्या है? मॉड्यूल से अलग क्या बनाता है?