编辑:资源和控制器已被复数化,这要归功于评论中的反馈。但我的问题仍然存在。没有路线匹配[GET] /用户
我很新的轨道和我试图创建一个Rails的REST API 4. 我有一个路由错误,当我试图执行的User
的ressource GET请求:http://api.localhost:3000/users
没有路由匹配[GET]“/用户”
但是,当我执行命令“耙路线”我的终端上,我可以看到,有一个/users
路线:
api_users GET /users(.:format) api/users#index {:subdomain=>"api"} POST /users(.:format) api/users#create {:subdomain=>"api"} new_api_user GET /users/new(.:format) api/users#new {:subdomain=>"api"} edit_api_user GET /users/:id/edit(.:format) api/users#edit {:subdomain=>"api"} api_user GET /users/:id(.:format) api/users#show {:subdomain=>"api"} PATCH /users/:id(.:format) api/users#update {:subdomain=>"api"} PUT /users/:id(.:format) api/users#update {:subdomain=>"api"} DELETE /users/:id(.:format) api/users#destroy {:subdomain=>"api"}
这里是我的route.rb
文件的内容:
Rails.application.routes.draw do
# create rousources in subdomain api
namespace :api, path: '/', constraints: { subdomain: 'api' } do
resources :users
end
end
而且users_controller.rb
文件:
module Api
class UsersController < ApplicationController
def index
@users = User.all
render json: users, status: 200
end
end
end
什么建议吗?
编辑:资源和控制器已被多元化,这要归功于评论中的反馈。但我的问题仍然存在。
除了你的问题,你应该遵循约定,并以复数的资源名称以及控制器的名字。 – blelump 2014-10-28 21:42:58
你能访问你列出的任何网址吗?我相信@blelump是正确的。尝试编辑您的控制器文件名称,它应该工作。 – nikkon226 2014-10-28 22:47:33
感谢您对命名约定的反馈。在我的数据库中,存储有关用户数据的表被命名为'user'。我是否应该将其重命名为“用户”? – 2014-10-29 21:07:13