这不是this question的副本,因为我没有为此资源使用自定义路由,也没有使用slugs。我正在使用Rails 5。
这是我的路由器
namespace :api, defaults: { format: :json } do
namespace :v1 do
resources :node_categories, only: [:create, :update, :destroy]
resources :edge_categories, only: [:create, :update, :destroy]
resources :nodes, only: [:index, :create, :destroy] do
collection do
match '/bulk' => 'nodes#bulk', via: :post
end
end
一切似乎都很好。 rake routes
打印路线确定
api_v1_node_categories POST /api/v1/node_categories(.:format) api/v1/node_categories#create {:format=>:json}
api_v1_node_category PATCH /api/v1/node_categories/:id(.:format) api/v1/node_categories#update {:format=>:json}
PUT /api/v1/node_categories/:id(.:format) api/v1/node_categories#update {:format=>:json}
DELETE /api/v1/node_categories/:id(.:format)
控制器很好地命名空间并且测试正在通过(尽管在这个项目中没有进行路由测试)。所有其他路线似乎工作正常。只有这种资源才会带来麻烦。对任何操作的任何请求都会返回404,但日志显示没有此类请求,没有错误或例外,没有任何内容。
所有客户端应用程序,Postman甚至curl都以相同的方式运行,返回幻像404以及空响应,日志中没有记录。
有什么想法吗?
答案 0 :(得分:0)
测试
scope '/api' do
scope '/v1' do
...
end
end
而不是名称空间,我在我的API中使用它。
答案 1 :(得分:0)
错误结果与Fabio的(我的路由器)路由权限有关。需要允许新的路线。
它与Rails无关。