如何在另一个rails应用程序中将rails应用程序设置为机架应用程序?

时间:2010-12-27 19:44:44

标签: ruby-on-rails ruby rack

(我相信这是可行的,但只是在谷歌上搜索,我还没有找到任何例子。)

也许是我要问的一个更具体的例子。假设我已经编写了rails-3应用程序:Foo,Bar,Baz,Qux。我写了另一个申请:硕士。在Master中我想匹配路由并运行其中的其他应用程序。由于它们都是机架兼容的,我想主机中的路由将是这样的:

match "/foo" => Foo::Application
match "/bar" => Bar::Application
match "/baz" => Baz::Application
match "/qux" => Qux::Application

但我还没弄清楚如何做到以及在哪里实际将应用程序的代码放在主应用程序中。

1 个答案:

答案 0 :(得分:1)

您可能希望比在主应用程序中路由更早地捕获内容。

你可以通过更低级别进入Rack来做到这一点; Rails应用程序根目录中的Rack配置文件名为config.ru:

# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment', __FILE__)

run Rack::URLMap.new \
  "/"    => Master::Application,
  "/foo" => Foo::Application,
  "/bar" => Bar::Application

  # ... etc.

您可以阅读有关Rack::URLMap here的更多信息。