2011-07-20 10 views
5

मेरे पास दो रेल ऐप्स हैं (रेल 3.0.7 का उपयोग करके), उन्हें "ब्लॉग" और "ऑथ" कहते हैं। मैं "ब्लॉग" से "auth" माउंट करना चाहता हूं जैसे कि मैं "ब्लॉग" ऐप चला सकता हूं और कुछ अनुरोध "auth" ऐप पर जा सकते हैं।मौजूदा रेल ऐप को किसी अन्य रेल ऐप में एम्बेड/माउंट कैसे करें?

ऐसा लगता है कि मुझे एम्बेड करने या शायद "इंजन" बनाने की आवश्यकता है, लेकिन मैं 100% निश्चित नहीं हूं जो सही है।

मैं "ब्लॉग" ऐप के अंदर "auth" ऐप कैसे एम्बेड कर सकता हूं?

+2

इंजन बनाने के लिए आगे बढ़ने का तरीका है। – apneadiving

उत्तर

0

यदि ऑथ ऐप वेब सेवा की तरह कुछ है (उदाहरण के लिए फेसबुक प्रमाणीकरण), तो बस 2 ऐप्स चलते रहें और एक ऐप से दूसरे ऐप में अनुरोध करें।

यदि ये ऐप्स कुछ तर्क या एक ही डेटाबेस साझा करते हैं, तो आप केवल कोड को मर्ज कर सकते हैं, इसलिए दो ऐप्स एक बन जाते हैं, या आप 'एथ' ऐप को मणि या प्लगइन की तरह कुछ बना सकते हैं और इसे अपने ब्लॉग में उपयोग कर सकते हैं ऐप

+0

"बस 2 ऐप्स चलते रहें और एक ऐप से यूआरएल के साथ अन्य ऐप में अनुरोध करें।" तो ग्राहक से दूसरे ऐप के लिए अनुरोध करते हैं? प्रारंभिक योजना "ब्लॉग" ऐप के क्लाइंट साइड को "ऑथ" ऐप (AJAX का उपयोग करके) के अनुरोध करने के लिए था, लेकिन उसे JSONP के उपयोग की आवश्यकता होगी जो केवल जीईटी के लिए अनुमति देता है। कुछ सेवाओं को मुझे एक्सेस करने की आवश्यकता है POST, DELETE, PUT, आदि – codecraig

+0

यदि आप एक रेल ऐप को किसी अन्य उपयोग सक्रिय संसाधन पर कॉल करना चाहते हैं। http://railscasts.com/episodes/94-activeresource-basics – lukemh

1

Rails3 एक रैक-आधारित एप्लिकेशन है। Rackmiddleware में पहले से ही एक डिफ़ॉल्ट डिफ़ॉल्ट अंतर्निहित अनुप्रयोग हैं। बंडल निष्पादन रेक मध्यवर्ती चलाने का प्रयास करें। आप स्टैक में कस्टम रैक अनुप्रयोग जोड़ सकते हैं। यह देखने के लिए this ब्लॉग पोस्ट का उपयोग करें।

+0

मैंने उस पोस्ट को देखा है लेकिन मुझे आश्चर्य है कि, मैं अपना "ब्लॉग" एप्लिकेशन "ऑथ" एप्लिकेशन की आवश्यकता कैसे करूं? ऐसा नहीं है कि "ऑथ" रेल ऐप एक मणि है, मैं बस अपने "ब्लॉग" ऐप में जेमफाइल में जोड़ सकता हूं। – codecraig

+0

मुझे समझ में नहीं आता है, क्या आपको अपने आवेदन में प्रमाणीकरण जोड़ने की आवश्यकता है? – Anatoly

+0

मेरे पास 'auth' नामक एक रेल ऐप है, जो प्रमाणीकरण प्रदान करता है। मैं अपने "ब्लॉग" रेल ऐप के क्लाइंट कोड को 'auth' ऐप में GET/POST, आदि करना चाहता हूं। मैं जेएसओएनपी (केवल जीईटी के काम) के 'ब्लॉग' क्लाइंट बी/सी में जावास्क्रिप्ट कोड से सीधे ऐसा नहीं कर सकता। मैं अनिवार्य रूप से "ब्लॉग" एप में/"एथ" ऐप को माउंट करना चाहता हूं ताकि मैं ऑथ तक पहुंच सकूं। क्लाइंट साइड कोड से सामान। क्या इसका कोई मतलब है? अभी मुझे लगता है कि मेरा मुख्य मुद्दा है, मैं "ब्लॉग" ऐप द्वारा "एथ" ऐप कैसे लगा सकता हूं? मैं बस उस ब्लॉग पोस्ट की तरह माउंट नहीं कर सकता कि बी/सी एथ ऐप ब्लॉग ऐप के लोड पथ पर नहीं है। – codecraig

2

रेल्स RuntimeError: You cannot have more than one Rails::Application उठा रहे थे यदि आपने एक रूबी इंस्टेंस में दो रेल ऐप्स को परिभाषित करने का प्रयास किया था, लेकिन यह this प्रतिबद्धता के बाद बदल गया है।

यह अभी भी 4.0.0 में रिलीज़ नहीं है, लेकिन नए संस्करणों में शामिल हो जाएगा। (> 4.1.0.beta)

अधिक जानकारी के लिए the discussion on PR देखें।


जो मैं समझता हूं उससे आपको शायद दो रेल ऐप्स की आवश्यकता नहीं है। आपको शायद Rails::Engine में आवश्यक कार्यक्षमता निकालने का प्रयास करना चाहिए।

Remember, Rails::Application is also a Rails::Engine.

आप कैसे वेब पर यह करने के लिए के बारे में सामग्री का एक बहुत कुछ मिल सकता है, और मैं thesetwo सुझाव है कि आप आरंभ करने के लिए होगा।

2

आप 'auth' ऐप के लिए "रेल-इंजन" बना सकते हैं, और फिर इस इंजन को रेल एप्लिकेशन i.e 'ब्लॉग' एप्लिकेशन में माउंट कर सकते हैं।

लिंक नीचे पर के बारे में रेल :: इंजन और अधिक पढ़ें -

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

http://api.rubyonrails.org/classes/Rails/Engine.html

एक रेल आवेदन में एक रेल mountable इंजन एम्बेड करने के लिए, इन सामान्य चरणों का पालन -

1) लक्ष्य रेल परियोजना खोलें, जहां एक इंजन को एम्बेडेड किया जाना चाहिए।

2) संपादन Gemfile के लिए खुला है, और निम्न पंक्ति जोड़ें:

gem '<engine name>', :path => "<absolute path to the Rails mountable engine project>" 

3) संपादन कॉन्फ़िग/मार्गों के लिए खुला है।आरबी, और निम्न पंक्ति जोड़ें:

mount <engine name>::Engine, :at => "/<engine name>" 
संबंधित मुद्दे