gpt4 book ai didi

ruby-on-rails - 没有路由匹配 [GET]/users

转载 作者:数据小太阳 更新时间:2023-10-29 07:41:58 24 4
gpt4 key购买 nike

编辑:由于评论中的反馈,资源和 Controller 已经多元化。但我的问题仍然存在。

我是 Rails 的新手,我正在尝试在 Rails 4 中创建一个 REST API。当我尝试对 User 资源执行 GET 请求时出现路由错误:http://api.localhost:3000/users

No route matches [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

有什么建议吗?

编辑:由于评论中的反馈,资源和 Controller 已经多元化。但我的问题仍然存在。

最佳答案

Rails 通过从右侧第二个点前面的主机地址中获取该部分来确定 URL 的子域。在您的示例中,您使用主机 api.localhost。 Rails 将从中解析一个空的子域。

因此,我建议在您的 hosts 文件中配置一个类似 api.my_app.dev 的域。这将允许 Rails 从主机确定正确的 api 子域部分。

在你这样做之后你的本地服务器可以响应 http://api.my_app.dev:3000/users

顺便说一句。我选择了顶级域 dev,因为如果您使用 POW 这样的工具,它是默认域.

关于ruby-on-rails - 没有路由匹配 [GET]/users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26618905/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com