Rails - 当路由存在时 API 命名空间的路由错误
Rails - Routing error for API namespace when route exists
我的 API 中有一条通往 "spaces" 资源的路线:
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。
您应该使用子域访问路由。例如,如果您通常在本地主机端口 3000 中打开站点,那么访问 http://localhost:3000/v1/spaces 将不起作用。为了使这项工作在您的本地环境中工作,您应该执行以下操作
为您的本地主机设置一个假的子域。在/etc/hosts中设置如下,
127.0.0.1api.test.com
然后,访问站点如下http://api.test.com:3000/v1/spaces
希望这有效。
我的 API 中有一条通往 "spaces" 资源的路线:
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。
您应该使用子域访问路由。例如,如果您通常在本地主机端口 3000 中打开站点,那么访问 http://localhost:3000/v1/spaces 将不起作用。为了使这项工作在您的本地环境中工作,您应该执行以下操作
为您的本地主机设置一个假的子域。在/etc/hosts中设置如下,
127.0.0.1api.test.com
然后,访问站点如下http://api.test.com:3000/v1/spaces
希望这有效。