我最近的任務是將我現有的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上呈現任何內容。