我做了一個rails 5 API與Sourcey教程,現在我得到一個路由錯誤。Api軌道:沒有路線匹配
捲曲命令curl -H "Authorization: Token token=8NjQH4YVWQdUIve4xDQBaArr" http://localhost:3000/v1/users
顯示404未找到的消息和「無路由匹配」在我的術語被升高,其中在服務器運行
無路由匹配[GET]「/ V1 /用戶」
所以我檢查了rails routes
。輸出是:
v1_users GET /v1/users(.:format) api/v1/users#index {:subdomain=>"api"}
POST /v1/users(.:format) api/v1/users#create {:subdomain=>"api"}
v1_user GET /v1/users/:id(.:format) api/v1/users#show {:subdomain=>"api"}
PATCH /v1/users/:id(.:format) api/v1/users#update {:subdomain=>"api"}
PUT /v1/users/:id(.:format) api/v1/users#update {:subdomain=>"api"}
DELETE /v1/users/:id(.:format) api/v1/users#destroy {:subdomain=>"api"}
我們注意到我們有GET/V1 /用戶/:ID
如何解決這個問題呢?
routes.rb中:
Rails.application.routes.draw do
constraints subdomain: 'api' do
scope module: 'api' do
namespace :v1 do
resources :users
end
end
end
end
Users_controller.rb和api_controller.rb是內部/應用/控制器/ API/V1/。
如果您需要的代碼的另一部分(控制器,模型....)不要猶豫,問
非常感謝!我有理由讓範圍模塊:'API'做',我沒有添加'名稱空間'API'做'使用捲曲與URL http://api.example.com/v1/users – Tellimi
是啊,這只是如果你想要而不是http:// example.com/api/v1/users'。如果您設置了一個隧道,以便您可以使用子域訪問您的Rails服務器,則無需更改路由。 – max