如何在routes.rb中重定向root?

时间:2011-08-09 16:28:41

标签: ruby-on-rails ruby-on-rails-3 url-routing

我的路线文件底部有以下内容:

root :to => 'threads#index', :constraints => lambda {|r| r.env["warden"].authenticate? }

这个问题是url只是/,而不是/ threads

如何将上述内容重定向到线程#index或/ threads?

由于

1 个答案:

答案 0 :(得分:2)

如果我正确理解您的问题,您只需将网站根目录的网址从http://....com/更改为http://....com/threads即可。

在这种情况下,您只需添加以下行:

config.action_controller.relative_url_root = '/threads'

到任何标准配置文件,例如config/application.rbconfig/development.rbconfig/production.rb,具体取决于您的应用是处于生产模式还是开发模式。

在导轨指南中有更多相关信息:here

编辑:

似乎上述解决方案可能无效。这是我试过的一个。您可以简单地将所有预先存在的路由包含在routes.rb文件中的范围内。即:

scope "/threads" do
  ..All your preexisting routes inside this..
end

请注意,这会将/threads添加到您应用中的每条路径。如果您只希望root发生这种情况,请确保只有root :to => ...行包含在范围内。

以下是范围的简单说明:here