7

मैं माउंटेबल इंजन के साथ कुछ प्रयोग कर रहा हूँ रेल। सबसे पहले मैं एक परिदृश्य के लिए आपकी राय की जरूरत है, यह एक अच्छा विचार है कि हम बनाने के "बड़े मॉड्यूल का हिस्सा" "माउंट इंजन 'के रूप में एक आवेदन पत्र में है।माउंट उप डोमेन पर एक इंजन 3.1

मैं इस यह बहुत अच्छा काम करता है की कोशिश की, mountable इंजन में हम विश्व स्तर पर एप्लिकेशन के मॉडल का उपयोग कर सकते हैं और एप्लिकेशन में हम मॉड्यूल उपसर्ग के साथ इंजन मॉडल पहुँच सकते हैं। तो यह मेरे लिए बहुत अच्छा काम करता है।

अब मूल प्रश्न के लिए आया था:

मैं, एक उप डोमेन के लिए एक इंजन माउंट करने के लिए इतना है कि विशेष उप डोमेन के साथ हर अनुरोध है कि विशिष्ट इंजन द्वारा पेश की जानी चाहिए चाहते हैं। मैंने इस कोड का इस्तेमाल किया।

root :to=>'dashboard#index' 
scope :subdomain => 'admin' do 
    mount MyAdmin::Engine => '/' 
end 

इस मामले mydomain.com में और admin.mydomain.comdashboard controller को जाता है। यदि मैं उस

scope :subdomain => 'admin' do 
    mount MyAdmin::Engine => '/' 
end 
root :to=>'dashboard#index' 

तरह वरीयताओं को बदलें इस मामले में mydomain.com और admin.mydomain.comengine specific root controller को जाता है।

हम इस परिदृश्य कैसे पूरा और विशिष्ट उप-डोमेन पर एक इंजन माउंट कर सकते हैं?

उत्तर

11

मैं इन मार्ग प्रविष्टियों का उपयोग करके कार्य को पूरा:

scope :subdomain => 'www' do 
    root :to=>'dashboard#index' 
end 
scope :subdomain => 'admin' do 
    mount MyAdmin::Engine => '/' 
end 
+0

क्या होगा यदि मैं foo.com और www.foo.com दोनों पर अपने डोमेन foo.com तक पहुंचने में सक्षम होना चाहता हूं? ऊपर परिवर्तन यह असंभव foo.com से सामग्री लोड है। – jkndrkn

+0

ऊपर @samuelkobe उत्तर का संदर्भ लें। उप डोमेन: –

+0

यह संभव में एक regex उपयोग करने के लिए नहीं है? उदा। दायरा: सबडोमेन =>/^ $ | www/do ... –

5

रेल 3.2.12 के साथ कार्य करना और रूबी 1.9.3-194 मैं एक अलग समाधान है कि भी www से बचने के लिए स्थानीय स्तर पर काम करता है के लिए आया था। उपडोमेन मुद्दे को एक निश्चित उपडोमेन में एक इंजन होने की अनुमति देते हुए।

get "home/index" 

constraints :subdomain => 'store' do 
    mount Spree::Core::Engine, :at => '/' 
end 

root :to => 'home#index' 

मैं पूरी तरह गलत हो सकता हूं लेकिन यह अब तक काम कर रहा है।

+0

बहुत उपयोगी! माउंट निर्देश को 'माउंट स्प्री :: कोर :: इंजन =>'/''' का उपयोग करके भी छोटा कर दिया जा सकता है – Epigene

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