Rails - 路由存在时API命名空间的路由错误

时间:2016-07-11 05:03:00

标签: ruby-on-rails api routing namespaces versioning

我有一个去往"空间的路线"我的API中的资源:

namespace :api, :path => "", :constraints => {:subdomain => "api"} do
  namespace :v1 do
    resources :spaces
  end
end

这对应于/controllers/api/v1/SpacesController.rb中的控制器

class API::V1::SpacesController < ApplicationController
  ...    
end

每当我尝试访问api时的页面。[BASE URL] / v1 / spaces我得到

No route matches [GET] "/v1/spaces"

任何想法为什么? 注意:我在命名空间中使用适当的API来代替Api。

1 个答案:

答案 0 :(得分:1)

您应该使用子域访问路线。例如,如果您经常在localhost端口3000中打开该站点,那么访问http://localhost:3000/v1/spaces将不起作用。为了使这项工作适合您的本地环境,您应该执行以下操作

为您的localhost设置一个假子域。在/ etc / hosts中设置以下内容,

127.0.0.1 api.test.com

然后,按以下方式访问网站http://api.test.com:3000/v1/spaces

希望这有效。