我有一个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
?
答案 0 :(得分:15)
这一切都基于多个资源。因此,如果资源名称是复数,则不需要添加_index
后缀,因为它是推断的。
如果它是一个单一的资源名称,那么它会添加后缀以便澄清,因为admin_push
通常是show
操作,而不是index
操作。
答案 1 :(得分:4)
您也可以使用
resource :push
而不是
resources :push
指定单一资源。见http://api.rubyonrails.org/classes/ActionDispatch/Routing.html