5

क्या एक सामान्य नामस्थान के तहत पूरे रेल अनुप्रयोगों को बनाना संभव है?क्या मेरे पास नए रेल अनुप्रयोगों में सामान्य नामस्थान हो सकते हैं?

मान लें कि मेरी कंपनी का नाम Acme, Inc. है और मेरे पास निम्नलिखित रेल परियोजनाएं हैं: ब्लॉग, स्टोर, वेब सेवा।

डिफ़ॉल्ट रूप से, अगर मैं rails new blog की तरह कुछ करना उत्पन्न अनुप्रयोगों हो जाएगा की तरह:

module Blog 
    class Application < Rails::Application 

module Store 
    class Application < Rails::Application 

module WebService 
    class Application < Rails::Application 

जहां हर परियोजना/आवेदन आत्म निहित है और वहाँ कंपनी के लिए कोई अंतर्निहित संदर्भ है। आदर्श रूप में मैं कंपनी नाम स्थान के तहत सभी इस आवेदन करना चाहते हैं, तो हम के रूप में उन्हें का उल्लेख कर सकते हैं:

AcmeInc::Blog::Application 
    AcmeInc::Blog::Entities::Article 

AcmeInc::Store::Application 
    AcmeInc::Store::Entities::Product 
    AcmeInc::Store::Entities::Order 
    AcmeInc::Store::Entities::Customer 

etc... 

यह संभव है? सिफारिश की?


का उपयोग करना: माणिक 2.0.0-p451, रेल 3.2.17


अद्यतन

उत्पन्न फ़ाइलों और परियोजना संरचना का स्नैपशॉट रेल नया एक्मे/ब्लॉग करने के बाद के रूप में सुझाव :

snapshot

+0

फिर आप उस वर्ग विधियों को कैसे कॉल कर सकते हैं और आप उस मॉड्यूल को कहां शामिल कर सकते हैं? –

+0

उन 3 अनुप्रयोगों को एक दूसरे से स्वतंत्र होना चाहिए। क्लास विधियों और मॉड्यूल को उसी तरह से बुलाया जाना चाहिए जिसे उन्हें डिफ़ॉल्ट ऐप पर बुलाया जाता है। AcmeInc समेत केवल इन सभी ऐप्स को कंपनी के कोडबेस पहचानकर्ता के तहत समूहित करना है। यह नेट दुनिया पर बहुत आम प्रक्रिया है, लेकिन मुझे यकीन नहीं है कि रूबी/रेल ऐप्स को उसी पैटर्न का पालन करना चाहिए, इसलिए मेरा प्रश्न। – qbantek

+0

उस समूह का क्या उद्देश्य है? यदि आप स्वयं निहित अनुप्रयोगों की कोशिश कर रहे हैं जो कुछ तत्व साझा करते हैं और बातचीत करते हैं, तो आप [रेल इंजन] (http://guides.rubyonrails.org/engines.html) देख सकते हैं। यदि आपकी चिंता सिर्फ कॉस्मेटिक उद्देश्यों के लिए नामस्थान है, तो मुझे लगता है कि आप वहां कुछ सम्मेलनों से लड़ सकते हैं। – tirdadc

उत्तर

1

ऐसा करने का सही तरीका इंजन के साथ है। प्रत्येक इंजन अपने आप मार्गों, टेस्ट स्वीट, आदि के साथ, स्टैंडअलोन ऐप्स की तरह है, लेकिन आप रेक कार्यों की तरह कुछ सामान्य बुनियादी सुविधाओं, आदि

http://guides.rubyonrails.org/engines.html

0

आप तो आपके कोड को प्रबंधित करने की कोशिश कर रहे हैं, आप सिर्फ एक ब्लॉग जेम क्यों नहीं बनाते जिसे आप प्रत्येक एप्लिकेशन में शामिल कर सकते हैं। फिर आप जेम के लिए एक सामान्य भंडार के तहत कोड का प्रबंधन करेंगे। मुझे लगता है कि यह

1

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

मैं इस मशहूर प्रोजेक्ट को स्प्री नामक साझा करना चाहता हूं, जो आर्किटेक्चर का अनुसरण कर रहा है। आप स्प्री के code on github here पर जा सकते हैं।

उदाहरण के लिए:

  • Spree::Core - एक रत्न के रूप में spree_core इंजन सभी मॉडल और आधार मॉड्यूल आदि
  • Spree::Backend बनाए रखने के लिए - एक रत्न सभी व्यवस्थापक संबंधित नियंत्रक के रूप में बनाए रखने के लिए spree_backend इंजन, विचार, संपत्ति इत्यादि
  • Spree::Frontend - spree_frontend इंजन को उपयोगकर्ता के कोड यानी cont को बनाए रखने के लिए एक मणि के रूप में इंजन रोलर्स, विचार, इससे संबंधित संपत्तियां।

मुझे लगता है कि आप इसे अपने एप्लिकेशन विकास के संदर्भ के रूप में उपयोग कर सकते हैं।

+0

स्प्री का जिक्र करने के लिए धन्यवाद। मैं एक परियोजना के संदर्भ के रूप में इसका उपयोग करने के लिए कोड को फोर्क कर रहा हूं। – qbantek

+0

निश्चित रूप से, मैं आपको रेल कोड कोड देखने के लिए भी प्रोत्साहित करूंगा। यह ढांचे वास्तुकला और हैक्स को समझने में आपकी मदद करेगा। :) – Surya

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

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