Rails路由:收集路由不断添加“_index”到url助手?

问题描述:

我正在尝试为我的结帐控制器创建额外的路径。这里是我的路线:Rails路由:收集路由不断添加“_index”到url助手?

resources :checkout do 
    collection do 
    post :add_to_cart, :to => 'checkout#add_to_cart' 
    put :update_shopping_cart, :to => 'checkout#update_shopping_cart' 
    get :billing 
    post :update_billing 
    put :update_billing 
    post :update_shipping 
    put :update_shipping 
    get :order_summary 
    post :submit_order 
    get :order_complete 
    get :clone_shipping_address 
    get :estimate_shipping 
    end 


end 

然而,当我做了bundle exec rake routes | grep checkout,我所有的定制路由有一个我不想要一个_index后缀:

   add_to_cart_checkout_index POST /checkout/add_to_cart(.:format)         checkout#add_to_cart 
    update_shopping_cart_checkout_index PUT /checkout/update_shopping_cart(.:format)      checkout#update_shopping_cart 
       billing_checkout_index GET /checkout/billing(.:format)          checkout#billing 
      update_billing_checkout_index POST /checkout/update_billing(.:format)        checkout#update_billing 
             PUT /checkout/update_billing(.:format)        checkout#update_billing 
     update_shipping_checkout_index POST /checkout/update_shipping(.:format)        checkout#update_shipping 
             PUT /checkout/update_shipping(.:format)        checkout#update_shipping 
      order_summary_checkout_index GET /checkout/order_summary(.:format)        checkout#order_summary 
      submit_order_checkout_index POST /checkout/submit_order(.:format)        checkout#submit_order 
      order_complete_checkout_index GET /checkout/order_complete(.:format)        checkout#order_complete 
    clone_shipping_address_checkout_index GET /checkout/clone_shipping_address(.:format)      checkout#clone_shipping_address 
     estimate_shipping_checkout_index GET /checkout/estimate_shipping(.:format)       checkout#estimate_shipping 
         checkout_index GET /checkout(.:format)            checkout#index 
             POST /checkout(.:format)            checkout#create 
          new_checkout GET /checkout/new(.:format)           checkout#new 
          edit_checkout GET /checkout/:id/edit(.:format)         checkout#edit 
           checkout GET /checkout/:id(.:format)           checkout#show 
             PUT /checkout/:id(.:format)           checkout#update 
             DELETE /checkout/:id(.:format)           checkout#destroy 

我怎么删除?

你变复数的资源的名称:

resources :checkouts do 
    ## your routes 
end 

事实上,你必须使用resource :checkoutresources :checkouts,这取决于你所需要的。