2011-12-29 63 views
0

我有2個子域指向一個rails應用程序。我的Rails應用程序的控制器應該服務於兩個子域。rails 3.0子域和格式

讓我們打電話給子域名www.mydomain.com和demo.mydomain.com。我想要2完成3件事:

  1. 請確保只有一些我的控制器服務www.mydomain.com和一些服務於這兩個域。
  2. 確保只有我的控制器操作的子集服務www.mydomain.com,有些服務於這兩個域。
  3. 確保用戶只能使用格式:HTML的demo.mydomain.com(例如http://demo.mydomain.com/index.html),並且只使用格式:JSON /:XML爲www.mydomain.com(例如http://www.mydomain.com/index.json)。

完成這兩個請求的最佳方式是什麼?

+0

使用之前的過濾器強制執行規則 – clyfe 2011-12-29 18:45:31

回答

1

也許看一看請求路由基於子域

How do I route by domain/subdomain in rails

http://agilewebdevelopment.com/plugins/request_routing

其中request_routing插件將允許您定義的路由要求該請求對象的測試方法/屬性,如子域名,域名,端口。您可以測試它們是針對一個值還是使用Regexp(假定該方法返回一個字符串)。

如果您使用的軌道3,你也可以檢查出subdomaining您的軌道站點

http://railscasts.com/episodes/221-subdomains-in-rails-3

爲了得到不同的基於子域控制器的響應,你可以使用基於

條件
@host = request.host 
+0

謝謝,但我可以使用它的用例號。 3(在我的問題)? – refaelos 2011-12-31 13:05:26

+1

你可以看看http://stackoverflow.com/questions/5382248/ruby-on-rails-routes-rb-match-file-extension-when-multiple-periods-exist-in路由使用請求的擴展名或使用的東西像request.fullpath.match(/ html $ /)或request.fullpath.match(/ json $ /) – arcyqwerty 2012-01-01 18:13:36