Single Rails代码库,两个服务器,两个路由范围

时间:2012-05-04 19:04:17

标签: ruby-on-rails ruby routes

在具有命名空间/管理功能的rails应用程序中,请考虑以下路由:

 namespace :admin do
   root :to => 'home#index'
   [.. resources cut here..]
 end

 get 'etc/:etc' => 'etc#etc'
 [.. other top level routes cut..]

如果我想将相同的Rails代码库部署到2个独立的服务器,frontend.com仍会看到顶级路由'etc /:etc'。

但是,如果我想将相同的代码库部署到仅管理服务器,以便请求只是http://backend.com并且具有命名空间:admin接管作为顶级而不必键入或使用{ {3}}

尝试使用.htaccess重写时,我遇到了admin命名空间代码中的URL生成问题,以及资产不再正确加载。

这只是不值得追求的东西吗?

1 个答案:

答案 0 :(得分:1)

当然,您可以根据根语句进行条件化。

namespace :admin do
  root :to => 'admin#index'
  ...
end
if SOMETHING
  root :to => "admin#index"
end

(在本例中我使用了AdminController而不是HomeController。)

用户可以输入http://backend.com/,但在某些时候,/ admin可能会显示在浏览器的网址栏上。

SOMETHING可能是对主机名或ENV的测试。您可以在vhost配置中设置ENV。