[问题] 使用RESTful遇到的问题

楼主: castle146 (Mr.)   2015-04-28 21:56:33
大家好,因为刚开始自学ROR,看了一些文章介绍,
找了ihower的“Ruby on Rails 实战圣经”来慢慢学习。
我在做“RESTful 应用程式(https://ihower.tw/rails4/restful.html)”这个章节的时候遇到了一个问题,
当我按照步骤将前几章的CRUD改成RESTful版本的CRUD时,
出现了“ActiveRecord::RecordNotFound in EventsController#show”错误。
如图http://i.imgur.com/ZhUYB5U.jpg
我有注意到这行{"requirements"=>{"id"=>/.*/}}
翻了版上有篇文章也有提到这点,不过在route.eb中加入这行,错误仍然一样。
请问是哪边没有注意到要修改的吗?
谢谢
controller以及view:https://gist.github.com/RuBeginner/d92401ed23ce477799b1
作者: mars90226 (火星人)   2015-04-28 22:18:00
你用哪个路径连? 看起来他找不到id,你应该用错路径
楼主: castle146 (Mr.)   2015-04-28 22:30:00
这个错误是连到Localhost:3000/events发生的
作者: algiz (Moulin)   2015-04-29 01:33:00
show 的 URI 应该是这样 localhost:3000/event/{:id}而你params[:id]没东西, 所以爆炸了^events/{:id}
楼主: castle146 (Mr.)   2015-04-29 07:06:00
params[:id]没东西是指在DB中找不到资料吗?不过在我改成RESTful之前都可以正常显示
作者: mars90226 (火星人)   2015-04-29 07:57:00
是show需要id来去DB找,他从URI去拿到ID,但是你连错你应该要用像是localhost:3000/events/1这样去找这样她会去找id为1的event再改成RESTful前可以work是因为他不是从URI上去找
作者: ihower   2015-04-29 14:17:00
你的routes.rb打错字了: 是 resources :events你应该打错成 resource :events 了
楼主: castle146 (Mr.)   2015-04-29 20:16:00
真的打错了,有点丢脸 囧我太粗心了,谢谢大家费心看我的问题以及讲解!

Links booklink

Contact Us: admin [ a t ] ucptt.com