“:root”在rake路由的输出中意味着什么?

时间:2013-11-24 02:36:05

标签: ruby-on-rails routes

当我跑步时

rake routes

我看到以下内容:

POST   /articles/:article_id/comments(.:format)           {:action=>"create", :controller=>"articles/comments"}

这很有道理。这意味着如果我对表单/ articles / 1234 / comments的url发出post请求,它会在articles / comments_controller.rb中运行控制器的create action,id参数设置为1234.

但后来我也看到了这句话:

/article/:id/:action     {:root=>"article", :controller=>"article/article", :title=>"Article"}

而且我不确定“:root”是什么意思。有人可以解释一下吗?

编辑:

我正在使用Rails 2.3.18。

这是routes.rb文件中的相关行

#routes.rb
map.connect '/article/:id/:action', :controller => 'article/article', :root => 'article', :title => 'Article'

1 个答案:

答案 0 :(得分:1)

:title类似,它只是另一个键值,它被合并到params散列中。

来自http://rubydoc.info/docs/rails/2.3.8/ActionController/Routing(默认路线和默认参数)

  

更正式地说,您可以在路线中包含任意参数,   因此:

     

map.connect':controller /:action /:id',:action => 'show',:page =>   '仪表板'

     

这会将:page参数传递给所有传入   与此路线匹配的请求。

它在Rails中没有任何其他含义。我的猜测是你的应用程序将它用于面包屑或类似的东西。