2

假设我有一个像 Digg 这样的网站正在运行,bookmarks.com并且想要创建bookmarks.com/girls共享所有路线的网站,但所有链接都指向/girls/<something>而不是仅仅指向/<something>.

在不更改视图中的所有链接的情况下,我想修改routes.rb以执行以下操作:

all_routes = lambda {
  ...
}

scope '/girls', &all_routes, constraint: { |r| r.session[:subsite] == girls }
scope '/', &all_routes

但是,我一直在反复试验,无法提出解决方案。

奖励积分:如果我有多个动态子站点,我将如何路由?

4

1 回答 1

0

我认为你可以通过子类化你的 Rails 应用程序来实现这一点,然后在你的路线中使用Rack.mount安装它

mount AnotherRailsApp, :at => "/something"

或者,您可以使用 rackup 文件,因此在 config.ru 中:

map "/" do
  run RailsApp::Application
end

map "/something" do
  run AnotherRailsApp::Application
end

但是,无论使用哪种方法,我都不确定 Rails 的 URL 辅助方法在挂载在“/something”时是否能够生成有效的 URL,并且您的数据也可能会遇到一些有趣的问题,除非您每个应用程序有一个 db。

于 2013-04-09T08:55:01.243 回答