[問題] 使用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