Ruby on rails 如何在routes.rb中为root重定向?

Ruby on rails 如何在routes.rb中为root重定向?,ruby-on-rails,ruby-on-rails-3,url-routing,Ruby On Rails,Ruby On Rails 3,Url Routing,我的routes文件底部有以下内容: root :to => 'threads#index', :constraints => lambda {|r| r.env["warden"].authenticate? } 问题是url只是/,而不是/threads 如何将上述内容重定向到线程#索引或/threads 谢谢如果我正确理解了您的问题,您只需将站点根目录的URL从http://....com/至http://....com/threads 在这种情况下,您只需添加以下行: co

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

root :to => 'threads#index', :constraints => lambda {|r| r.env["warden"].authenticate? }
问题是url只是/,而不是/threads

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


谢谢

如果我正确理解了您的问题,您只需将站点根目录的URL从
http://....com/
http://....com/threads

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

config.action\u controller.relative\u url\u root='/threads'

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

rails指南中有关于此的更多信息:

编辑:

看来上述解决方案可能行不通。这是我自己试过的一个。您只需将所有预先存在的路由封装在
routes.rb文件中的一个作用域中。i、 e:

scope "/threads" do
  ..All your preexisting routes inside this..
end
请注意,这将在应用程序中的每个路径前添加
/threads
。如果您只希望在
root
中发生这种情况,那么请确保只有
root:to=>…
行被包装在作用域中


下面是对作用域的一个简单解释:

我认为您只需要线程的默认行为,在这种情况下,您可以向Rakefile添加
资源:threads
match'/threads'=>“threads#index'
。除非您的意思是希望站点的根URL为
/threads
?在这种情况下,您可以将
config.action\u controller.relative\u url\u root='/threads'
添加到您的配置文件中。@Ankit Soni:为什么不写一个答案(格式良好)而不是注释呢?