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

标签 ruby-on-rails api routing namespaces versioning

我的 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/

相关文章:

ruby-on-rails-3 - 使用 lvh.me 的 Rails 3 子域测试

c# - 从 Razor View 生成区域中 Razor 页面的 URL

ruby-on-rails - 如何使用javascript_include_tag获取文件夹中的所有脚本

ruby-on-rails - 页面中没有方法错误#home

ruby-on-rails - 在表单提交之前 Mechanize 检查所有单选按钮

php - 如何在 google.ch 搜索中正确显​​示 SEOStats 库的 getSerps 方法的结果?

python - 如何将 Angular JS 与 Restful API 结合使用

html - Zurb Foundation 4 列未调整大小

api - 休息 API : fields of objects in a list of objects in response JSON

php - Laravel 4 路由 - 如果不满足条件则能够跳过路由