Rails 4 - 单例资源下的嵌套资源

时间:2018-02-21 16:16:41

标签: ruby-on-rails ruby-on-rails-4 rails-routing nested-routes

我有一个Rails 4应用程序,目前正在实施购物车。 我不想透露用户ID,购物车ID,但只显示网址中的购物车商品ID。 所以基本上,我希望我的路线像: -

/user/cart/plans => show all plans
/user/cart/cart_items/new => add to cart
/user/cart => show current cart with cart items
/user/cart/cart_item DESTROY - delete item from cart

所以在我的routes.rb

resource :user, only: [:edit] do
  collection do
    patch 'update_password'
    get 'show_payment_history'
  end
  resource :cart
  resources :cart_items ,  only: [:new, :destroy]   
  ...
  ...

并且使用上述路线生成的路径是......

   update_password_user PATCH    /user/update_password(.:format)                                                                             users#update_password
                             show_payment_history_user GET      /user/show_payment_history(.:format)                                                                        users#show_payment_history
                                             user_cart POST     /user/cart(.:format)                                                                                        carts#create
                                         new_user_cart GET      /user/cart/new(.:format)                                                                                    carts#new
                                        edit_user_cart GET      /user/cart/edit(.:format)                                                                                   carts#edit
                                                       GET      /user/cart(.:format)                                                                                        carts#show
                                                       PATCH    /user/cart(.:format)                                                                                        carts#update
                                                       PUT      /user/cart(.:format)                                                                                        carts#update
                                                       DELETE   /user/cart(.:format)                                                                                        carts#destroy
                                    new_user_cart_item GET      /user/cart_items/new(.:format)                                                                              cart_items#new
                                        user_cart_item DELETE   /user/cart_items/:id(.:format)                                                                              cart_items#destroy

但我仍然无法使其正常工作,例如,user_cart_path不能重定向,不知道......问题是什么。

对于我建议的解决方案,我们将不胜感激或提供任何有用的方法!

提前致谢

1 个答案:

答案 0 :(得分:0)

问题与多元化控制器名称有关。一旦我将控制器从cart重命名为carts ......一切都得到修复。

希望它有助于其他人