2013-07-10 43 views
0

類似於Basecamp的子域名的使用方式如此。 :)嗯,我想創建一個具有高級功能的應用程序,允許用戶將他們的域名指向應用程序,並讓應用程序解析(A記錄或CNAME)到他們的自定義視圖,就像人們使用Basecamp一樣子域。我需要一種編程方式,無需重新啓動Web服務器或使用AWS;完全由我的Rails應用程序控制的東西。如果它涉及區域文件,我想要一些編程方法來控制它們。Rails的DNS路由選擇

編輯 要清楚,我不尋找子域定製。我希望我的應用程序允許用戶將其域名指向我的應用程序。因此,customerurl.com指向應用程序的白色標籤版本。

回答

0

看看request對象並查詢subdomain鍵。使用它來做你的應用程序需要的任何定製。也許是在應用程序控制器中定義的過濾器之前

ETA:即使查詢request對象的不同部分,也可以獲得相同的策略。例如

def do_customizations 
    if request.host == 'example.com' 
    # Do customization for example.com 
    # Might need more sophisticated matching to deal with presence/absence 
    # of 'www' or other subdomains 
    elsif request.host == 'main-domain.com' 
    # Maybe you want a more sophisticated test than if/else/else, but that's OK 
    else 
    # Default settings 
    end 
end 

,然後在你的控制器(S),

before_filter :do_customizations