【问题标题】:Rails 4 - nested resource under singleton resourceRails 4 - 单例资源下的嵌套资源
【发布时间】:2018-02-21 16:16:40
【问题描述】:

我有一个 Rails 4 应用程序,目前正在实现一个购物车。 我不想透露用户 ID、购物车 ID,而只想透露 url 中的购物车项目 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 在重定向中不起作用,不知道...是什么问题。

对于我建议的解决方案,我们将不胜感激任何帮助或任何好的方法!

提前致谢

【问题讨论】:

  • 当你说“不工作”时,到底发生了什么?
  • 于 2018-02-22 10:58:52 +0000 开始 GET "/user/cart" for 103.211.42.252 +0000 无法从 103.211.42.252 渲染控制台!允许的网络:127.0.0.1、::1、127.0.0.0/127.255.255.255 ActionController::RoutingError(未初始化的常量 CartsController):
  • 让我尝试复数并运行 agan
  • 是的......它通过复数来解决。现在关闭这个问题
  • 为什么它被否决...请澄清

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


【解决方案1】:

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

希望对他人有所帮助

【讨论】:

    猜你喜欢
    • 2014-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多