2013-08-27 32 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重定向到一个特定的位置。

相关问题