0

我在服务器上运行了一个 Rails 应用程序。这是一个大项目,所以涉及到很多路由,目前有两个域指向根。我想以某种方式设计我routes.rb的域来解释一个域以将其带到应用程序的某个部分,就好像它是根一样,并将另一个用于其他任何地方。

像这样的东西(非常伪代码,希望你明白):

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 可以处理这个问题吗?谢谢!

4

2 回答 2

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 重定向到特定位置。

于 2013-08-27T05:22:20.343 回答
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
于 2013-08-27T04:13:49.327 回答