मैं इस समस्या का समाधान करने में असमर्थ रहा हूँ, यहाँ और इसी तरह के कई सवालों के बावजूद। ऐसा लगता है कि इस प्रश्न का उत्तर रेल 3 के लिए नहीं दिया गया है, इसलिए यहाँ यह है:
मेरे पास एक ऐसा एप्लिकेशन है जो वर्तमान में उपयोगकर्ताओं को अपना उपडोमेन बनाने की अनुमति देता है जिसमें एप्लिकेशन का अपना उदाहरण होता है। रेल 2 में रहते हुए आपको सबडोमेन-फू मणि का उपयोग करके सर्व किया गया था, संस्करण 3 में यह नाटकीय रूप से सरल है, जैसे कि रेलसेकस - http://railscasts.com/episodes/221-subdomains-in-rails-3 ।
यह अच्छी सामग्री है, लेकिन मैं उपयोगकर्ताओं को अपने डोमेन नाम को अपने खाते के साथ जोड़ने का विकल्प भी प्रदान करना चाहता हूं। इसलिए जब उनके पास http://userx.mydomain.com हो सकता है , तो मैं उन्हें http://userx.com चुनना पसंद करूंगा के रूप में अच्छी तरह से जुड़ा हुआ ।
मुझे रेल 2 में ऐसा करने के लिए कुछ संदर्भ मिले, लेकिन वे तकनीक अब काम नहीं करती हैं (विशेषकर यह एक: https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -एप्प / )।
किसी को भी एक मनमाना डोमेन स्वीकार करने के लिए मार्गों का उपयोग करने के लिए एक तरीका सुझा सकता है और एक नियंत्रक के साथ इसे पारित कर सकता है ताकि मैं उपयुक्त सामग्री दिखा सकूं?
अपडेट करें : मुझे अब ज्यादातर जवाब मिल गया है, लियोनिद की समय पर प्रतिक्रिया के लिए धन्यवाद, और कोड पर एक नया रूप। यह अंततः मौजूदा उपडोमेन कोड के अतिरिक्त की आवश्यकता थी जो मैं (Railscast समाधान से) उपयोग कर रहा था और फिर मार्गों में थोड़ा जोड़ रहा था ।rb। मैं अभी तक वहां नहीं हूं, लेकिन मैं अब तक जो भी चाहता हूं, पोस्ट करना चाहता हूं।
Lib / subdomain.rb में:
class Subdomain
def self.matches?(request)
request.subdomain.present? && request.subdomain != "www"
end
end
class Domain
def self.matches?(request)
request.domain.present? && request.domain != "mydomain.com"
end
end
मैंने पहली की नकल में दूसरी कक्षा जोड़ी है, जिसे काम करने के लिए जाना जाता है। मैं बस एक शर्त जोड़ता हूं जो यह सुनिश्चित करता है कि आने वाला डोमेन वह नहीं है जिसके लिए मैं मुख्य साइट होस्ट कर रहा हूं।
इस वर्ग का उपयोग मार्गों में किया जाता है।
require 'subdomain'
constraints(Domain) do
match '/' => 'blogs#show'
end
constraints(Subdomain) do
match '/' => 'blogs#show'
end
यहाँ, मैं डोमेन के लिए जाँच करने के लिए एक श्लोक के साथ मौजूदा उपडोमेन कोड (फिर से, यह ठीक काम कर रहा हूँ) को प्रस्तुत कर रहा हूँ। यदि यह सर्वर उस डोमेन पर प्रतिक्रिया करता है और यह वह नहीं है जिसके तहत मुख्य साइट संचालित होती है, तो निर्दिष्ट नियंत्रक के आगे।
और जब यह काम करता हुआ प्रतीत होता है, तो मेरे पास अभी पूरी तरह से काम नहीं है, लेकिन मुझे लगता है कि यह विशेष समस्या हल हो गई है।