我正在通过对后端执行抓取并使用console.log()在浏览器控制台中查看结果来对Rails API进行初始测试。当我向命名空间的url发出请求以查看程序列表时,会出现我的错误。
我已经检查了控制器的show方法,以及路线和模型。我知道它返回的是html而不是JSON,这就是为什么抓取部分中断的原因。
App.js
debugImplementation 'androidx.fragment:fragment-testing:1.2.0-alpha01'
programs_controller.rb
componentDidMount(){
fetch('http://localhost:3000/api/v1/programs')
.then(res => res.json())
.then(json => console.log(json))
我希望看到在我的seed.rb文件中放置的18个程序的列表,但是我从ActiveRecord中收到错误消息,提示“没有ID找不到程序”。我确实尝试过在我的program_params方法中将:id传递到.permit()中,但是那里也没有运气。
答案 0 :(得分:2)
我认为您的api / v1网址将在route.rb中丢失或出现错误。你能告诉我你的routes.rb文件吗?
另外 我已经在github中检查了您的源代码 在您对此答案发表评论之后 我发现错误的单词 你在routes.rb中有编码资源,这是一个错误的词
您必须在config / routes.rb
中将资源更改为资源2.5单一资源 有时,您有一个资源,客户端可以始终在不参考ID的情况下进行查找。例如,您希望/ profile始终显示当前登录用户的配置文件。在这种情况下,您可以使用单个资源将/ profile(而不是/ profile /:id)映射到show操作:
https://guides.rubyonrails.org/routing.html#singular-resources
我建议您必须阅读导轨指南 https://guides.rubyonrails.org/