为什么我的一些Rails路径助手有一个_index后缀?

时间:2011-12-13 21:09:37

标签: ruby-on-rails routes

我有一个Rails路由定义,如下所示:

namespace :admin do
  resources :feeds
  resources :push
end

rake routes为其生成以下输出:

admin_feeds GET  /admin/feeds  {:controller=>"admin/feeds", :action=>"index"}
admin_push_index GET  /admin/push  {:controller=>"admin/push", :action=>"index"}

为什么push的路径助手会获得_index后缀,而不是feeds

2 个答案:

答案 0 :(得分:15)

这一切都基于多个资源。因此,如果资源名称是复数,则不需要添加_index后缀,因为它是推断的。

如果它是一个单一的资源名称,那么它会添加后缀以便澄清,因为admin_push通常是show操作,而不是index操作。

答案 1 :(得分:4)

您也可以使用

resource :push

而不是

resources :push

指定单一资源。见http://api.rubyonrails.org/classes/ActionDispatch/Routing.html