Burada ve başka yerlerde benzer birkaç soruya rağmen, bu soruna uygulanabilir bir çözüm bulamadım. Görünüşe göre bu soru Rails 3 için cevaplanmamış, bu yüzden işte:
Şu anda kullanıcıların, uygulama örneğini içeren kendi alt alanlarını oluşturmalarına izin veren bir uygulamam var. Rails 2'de size en iyi şekilde alt alan-fü mücevherini kullanarak hizmet verilmişken, sürüm 3'te, Railscast - http://railscasts.com/episodes/221-subdomains-in-rails-3'e göre çok daha basit .
Bu iyi bir şey, ancak kullanıcılara kendi alan adlarını hesaplarıyla ilişkilendirme seçeneği de sunmak istiyorum. Onlar olabilir süre Yani http://userx.mydomain.com , ben tercih etmelerini istiyoruz http://userx.com sıra ilişkili.
Bunu Rails 2'de yapmak için birkaç referans buldum, ancak bu teknikler artık işe yaramıyor gibi görünüyor (özellikle bu: https://feefighters.com/blog/hosting-multiple-domains-from-a-single-rails -app / ).
Herhangi biri rasgele bir etki alanını kabul etmek için yolları kullanmanın bir yolunu önerebilir ve uygun içeriği gösterebilmem için bunu bir denetleyiciye iletebilir mi?
Güncelleme : Leonid'in zamanında verdiği yanıt ve koda yeni bir bakış sayesinde şimdi bir cevabın çoğunu aldım. Nihayetinde kullanmakta olduğum (Railscast çözümünden) mevcut Subdomain koduna bir ekleme ve ardından route.rb'ye biraz ekleme gerektirdi. Henüz tam olarak orada değilim ama şu ana kadar sahip olduğum şeyi göndermek istiyorum.
Lib / subdomain.rb'de:
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
Çalıştığı bilinen birinci sınıfın taklidi olarak ikinci sınıfı ekledim. Ben sadece, gelen etki alanının ana siteyi barındırdığım alan olmamasını sağlayan bir koşul ekliyorum.
Bu sınıf, route.rb'de kullanılır:
require 'subdomain'
constraints(Domain) do
match '/' => 'blogs#show'
end
constraints(Subdomain) do
match '/' => 'blogs#show'
end
Burada, Etki Alanını kontrol etmek için mevcut alt etki alanı kodunu (yine, iyi çalışıyor) başına ekliyorum. Bu sunucu bu etki alanına yanıt verirse ve ana sitenin altında çalıştığı sunucu değilse, belirtilen denetleyiciye iletin.
Ve bu işe yarıyor gibi görünse de, henüz her şey tam olarak çalışmıyor, ancak bu özel sorunun çözüldüğünü düşünüyorum.