2012-10-22 40 views
1

我最近的任務是將我現有的Rails 3應用程序分離爲標準和高級版本。高級版本將具有所有現有功能,並增加新的佈局和新功能。理想情況下,我希望premuim用戶通過爲子網域添加當前網址前綴來訪問此網站,例如,「premium.somesite.com」/網站的標準版本,我不想更改,仍然可以通過默認網址訪問。Rails 3子域對於現有的Rails應用程序

如果可能,我想簡單地添加一些邏輯來退出視圖和控制器,以確定如何處理請求是否使用子域。

我試着跟隨Railcast subdomains in rails 3,但是他在博客模型和數據庫屬性的上下文中使用子域名,因爲我希望我的子域名在應用範圍內。這是甚至有可能與子域?我怎樣才能開始?


我已經試過:

加入額外的虛擬主機由乘客使用我的Apache的httpd.conf文件:

<VirtualHost *:80> 
    ServerName premium.mydomain.com 
    DocumentRoot /somewhere/../myapp 
    <Directory /somewhere/public> 
    Allow from all 
    Options -Multiviews 
    </Directory> 
</VirtualHost> 

添加以下到我的routes.rb

class PremiumSubdomain 
    def self.matches?(request) 
    request.subdomain == "premium" 
    end 
end 

MyApp::Application.routes.draw do  
    constraints(PremiumSubdomain) do  
    #all of my routes...  
    end  
end 

what happ網址:

嘗試導航到我的網站與高級子域名導致未找到域,將約束添加到我的route.rb阻止應用程序的其餘部分在我的默認URL上呈現任何內容。

回答

0

因此,事實證明,雖然我確實已經在apache上正確配置了所有內容,但我們使用的是第三方用於我們的DNS服務器,因此僅僅是爲我們的子域添加記錄並且其他所有內容都非常實用。

相關問題