2013-08-27 30 views
0

我有一個Rails應用在服務器上運行。這是一個很大的項目,因此涉及到很多路線,目前有兩個域指向根目錄。我想以某種方式設計我的routes.rb來解釋一個域,將其作爲應用程序的某個部分,就好像它是根,並在其他地方使用其他域。Rails路由:不同的域到不同的地方

像這樣的東西(很僞代碼,希望你的想法):

whole_app.com 
whole_app.com/documents 
whole_app.com/share 
whole_app.com/users 
partial_app.com, :points_to => 'whole_app.com/share' 

Rails可以處理這個問題?謝謝!

回答

0

是否會根據某種標準去/share?如果是的話,你可以這樣做:

routes.rb

root :to => 'pages#home' 

pages_controller.rb

def home 
    if (some condition is met) 
    redirect_to this_path 
    else 
    render :layout => 'that' 
    end 
end 
+0

好的,是的,我可以檢查控制器中的域。這看起來似乎可以從'routes.rb'更好的管理。 –

2

您可以通過在應用控制器覆蓋默認url_options方法實現這一目標。這將覆蓋每個請求的主機url。

class ApplicationController < ActionController::Base 
    .... 
    def default_url_options 
    if some_condition 
     {:host => "partial_app.com"} 
    else 
     {:host => "whole_app.com"} 
    end 
    end 
    .... 
end 

而對於指向某些特定的URL路徑,你可以使用:

match "/my_url" => redirect("http://google.com/"), :as => :my_url_path 

更好的方法是做服務器設置的一些URL重定向到一個特定的位置。

相關問題