我有一個網址https://www.openhub.net這是我的軌道4.2.7應用程序。我在另一個系統上有一個單獨的子域,它是https://code.openhub.net/。如果您碰到第二個鏈接,這會將您重新路由到停用的頁面。什麼是code.openhub.net
網址將被分解,將被重新路由到openhub.net
。所以我想要做的是,當有人試圖去code.openhub.net
我的軌道應用程序有openhub.net
將提供靜態頁面。問題是我無法概念化這將如何工作。例如,下面是路徑下的rails文檔片段。如何在route.rb中將子域路由到rails應用程序?
3.9基於請求的約束 您也可以根據返回字符串的請求對象上的任何方法約束路由。
您指定的請求,基於約束您指定的 段約束以同樣的方式:通過調用Request對象 上的方法具有相同的名稱作爲
get 'photos', to: 'photos#index', constraints: { subdomain: 'admin' }
You can also specify constraints in a block form:
namespace :admin do
constraints subdomain: 'admin' do
resources :photos
end
end
請求限制工作散列鍵,然後將返回值 與散列值進行比較。因此,約束值應該與相應的Request對象方法返回類型相匹配。例如: 約束條件:{subdomain:'api'}將匹配api子域名爲 ,但使用符號約束:{subdomain :: api}將不會是 ,因爲request.subdomain返回'api'作爲String。
我明白這份文件的意思,但是當我嘗試將這些代碼付諸實踐時,我很難過。這裏是我的routing.rb
文件:
get '???', to: '???', constraints: { subdomain: 'code' }
據我瞭解,網址中的子域名限制部分將是代碼,但將get
和to
是什麼?我怎麼知道會得到什麼?我是否簡單地將get code.openhub.net
替換爲CodeController#index
?有沒有人試圖做過這樣的事情?從文檔中我看到請求對象有一個我可以調用的方法original_url
。我可以利用這個方法嗎?任何幫助將不勝感激。
- 一點題外話,我注意到,子域名是不是這應該在這裏工作Rails Request Object
感謝您的幫助! –