资源路由存在但Rails抛出404

时间:2017-02-22 14:48:45

标签: ruby-on-rails url-routing ruby-on-rails-5

这不是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以及空响应,日志中没有记录。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

测试

scope '/api' do
    scope '/v1' do
       ...
    end
end

而不是名称空间,我在我的API中使用它。

答案 1 :(得分:0)

错误结果与Fabio的(我的路由器)路由权限有关。需要允许新的路线。

它与Rails无关。