我正在疯狂地开始#34;定制"位置,如:
mount Spree::Core::Engine, :at => '/shop'
这适用于网站的主要部分,但管理员端的API调用得到404。
No route matches [GET] "/shop/api/orders/R373466857/shipments/H36171240358/ship.json"
我注意到API路线如下所示:
ready_api_order_shipment_path PUT /api/orders/:order_id/shipments/:id/ready(.:format) spree/api/shipments#ready {:format=>"json"}
ship_api_order_shipment_path PUT /api/orders/:order_id/shipments/:id/ship(.:format) spree/api/shipments#ship {:format=>"json"}
add_api_order_shipment_path PUT /api/orders/:order_id/shipments/:id/add(.:format) spree/api/shipments#add {:format=>"json"}
remove_api_order_shipment_path PUT /api/orders/:order_id/shipments/:id/remove(.:format) spree/api/shipments#remove {:format=>"json"}
注意缺少/shop
前置相关路线。有任何想法吗?我可以在我的HTTP服务器中重定向它们,但这看起来像是一个神经质的黑客。
答案 0 :(得分:1)
您的发动机正确安装。在您的佣金路线中,您应该看到如下内容:
1| Prefix Verb URI Pattern Controller#Action
2| spree /shop Spree::Core::Engine
3|
4| Routes for Spree::Core::Engine:
5| new_spree_user_session GET /user/spree_user/sign_in(.:format) spree/user_sessions#new
所有狂欢路线都安装在/ shop下面,如上面第2行所示。 Spree :: Core :: Engine部分的路由列出了相对于安装引擎的路径的路由。这有点令人困惑,但这就是rake路线的工作方式。
我认为您遇到问题是因为您尝试对仅接受 PUT 请求的路线执行 GET 请求。如果您切换HTTP请求类型,则应该正确解决问题。