简体   繁体   English

Rails路由:收集路由是否在URL帮助程序中添加“ _index”?

[英]Rails routes: collection routes keep adding “_index” to url helper?

I'm trying to create extra paths for my checkout controller. 我正在尝试为结帐控制器创建额外的路径。 Here are my routes: 这是我的路线:

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

However, when I do a bundle exec rake routes | grep checkout 但是,当我执行bundle exec rake routes | grep checkout bundle exec rake routes | grep checkout , all my custom routes have an _index suffix that I don't want: 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

How would I remove that? 我将如何删除?

You have to pluralize the name of the resources: 您必须对资源名称进行复数处理:

resources :checkouts do
  ## your routes
end

In fact you have to use resource :checkout or resources :checkouts , depending on what you need. 实际上,您必须根据需要使用resource :checkoutresources :checkouts

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM