如何修复Rails'ActiveRecord :: RecordNotFound(在没有ID的情况下找不到程序)

时间:2019-07-30 21:30:33

标签: javascript ruby-on-rails ruby reactjs

我正在通过对后端执行抓取并使用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()中,但是那里也没有运气。

1 个答案:

答案 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/