我的 API 中有一条通往“spaces”资源的路线:
namespace :api, :path => "", :constraints => {:subdomain => "api"} do
namespace :v1 do
resources :spaces
end
end
这对应于在/controllers/api/v1/SpacesController.rb 找到的 Controller
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.1 api.test.com
然后按如下方式访问站点http://api.test.com:3000/v1/spaces
希望这有效。
关于ruby-on-rails - Rails - 存在路由时 API 命名空间的路由错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38299466/