【发布时间】:2014-10-28 21:35:24
【问题描述】:
编辑:资源和控制器已经多元化,这要感谢在 cmets 中写的反馈。但我的问题仍然存在。
我对 Rails 很陌生,我正在尝试在 Rails 4 中创建一个 REST API。
当我尝试在 User ressource 上执行 GET 请求时出现路由错误:http://api.localhost:3000/users
没有路由匹配 [GET] "/users"
但是,当我在终端上执行命令“rake routes”时,我可以看到有一个/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
有什么建议吗?
编辑:资源和控制器已经多元化,这要感谢在 cmets 中写的反馈。但我的问题仍然存在。
【问题讨论】:
-
除了你的问题,你应该遵循约定,复数你的资源名称和控制器名称。
-
您可以访问您列出的任何网址吗?我相信@blelump 是正确的。尝试编辑您的控制器文件名,它应该可以工作。
-
感谢有关命名约定的反馈。在我的数据库中,存储用户数据的表名为
user。我也应该将其重命名为users吗? -
我刚刚编辑了我的原始帖子,对
users资源和users控制器进行了更改 -
您是否尝试过使用
http://api.lvh.me:3000/users(需要互联网访问)而不是http://api.localhost:3000/user?
标签: ruby-on-rails ruby routes