Rails中jsonapi_resource GET请求无数据返回,路由匹配失败求助
问题原因与解决方法
你的问题出在路由定义上:
- 你使用了
jsonapi_resource :authors(单数形式的路由助手),这个方法只会生成单个资源的路由,对应的路径是/author/:id,而非/authors/:id。 - POST请求返回的链接是
/authors/4,但这个路径并未被当前路由规则匹配,因此触发404错误。
解决步骤
修改routes.rb中的路由定义,将单数的jsonapi_resource替换为复数的jsonapi_resources:
Rails.application.routes.draw do get '/', to: 'status#index' jsonapi_resources :authors end
修改后会生成符合REST规范的复数资源路由,包含:
- GET
/authors:获取所有作者列表 - GET
/authors/:id:获取单个作者详情 - POST
/authors:创建新作者 - PATCH/PUT
/authors/:id:更新作者信息 - DELETE
/authors/:id:删除作者
修改完成后重启服务器,访问/authors/4即可正常获取数据。
内容的提问来源于stack exchange,提问作者Ragesh Kr
相关产品推荐
相关产品推荐

