2011-03-15 12 views
7

मेरे पास रेल 3 के बारे में एक रूटिंग प्रश्न है, और एक सशर्त स्थापित करना है: रूट पथ।रेल 3 - सशर्त रूटिंग?

अभी, मेरी route.rb निम्नलिखित है:

root :to => "topics#index" 

इस महान और dandy है, लेकिन केवल तभी जब कोई उपयोगकर्ता अपने विशेष उप डोमेन (आधार शिविर के शैली) अपनी साइट पर चल रहा है। अगर वे www.myapp.com या myapp.com पर जाते हैं, तो यह समान नहीं होना चाहिए: रूट। अगर यह सब पर सेटअप, कुछ है कि जैसा होगा संभव था मैं आश्चर्य था ...

if default_subdomain(www, "") 
root :to => "promos#index" 
else 
root :to => "topics#index 
end 

मैं जानता हूँ कि इस routes.rb में अनुमति नहीं दी जाएगी, लेकिन कुछ है जो एक ही तार्किक बात करना होगा । क्या किसी के पास इसका कोई अनुभव है, या कोई भी दस्तावेज/ब्लॉग जिसे मैं इस तरह कुछ सेट करने की कोशिश करने के लिए पढ़ सकता हूं।

constraints(:subdomain => "www") do 
    root :to => "promos#index" 
    end 

    root :to => "topics#index" 

उत्तर

10

इसे पूर्ण करने के :requirements टैग का उपयोग कर सकते हैं:

धन्यवाद

नीचे चक की मदद प्रति

(धन्यवाद एक टन), यह मेरा काम कर कोड किया जा रहा समाप्त हो गया।

root :to => "promos#index", :requirements => { :subdomain => "www" } 
root :to => "topics#index" 

मुझे लगता है कि यह काम करेगा। मैंने उप-डोमेन/उपडोमेन की कमी से कभी इसका सामना नहीं किया है।

संपादित करें: कुछ पढ़ने के बाद, रेल 3 इसके बजाय :constraints का उपयोग करता है।

+0

क्या कोई बाधा के रूप में सूचीबद्ध करने का कोई तरीका है कि परम 'ईमेल' मौजूद होना चाहिए? जैसा कि '/url.com? ईमेल = ईमेलड्रेस' में है, और अगर ईमेल मौजूद है तो एक तरफ मार्गांतरित करने के लिए और दूसरा अगर ऐसा नहीं होता है? – finiteloop

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