[問題] 使用RESTful遇到的問題

看板Ruby作者 (Mr.)時間9年前 (2015/04/28 21:56), 9年前編輯推噓3(3012)
留言15則, 4人參與, 最新討論串1/1
大家好,因為剛開始自學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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.119.192.7 ※ 文章網址: https://www.ptt.cc/bbs/Ruby/M.1430229396.A.ABE.html

04/28 22:18, , 1F
你用哪個路徑連? 看起來他找不到id,你應該用錯路徑
04/28 22:18, 1F

04/28 22:30, , 2F
這個錯誤是連到Localhost:3000/events發生的
04/28 22:30, 2F

04/29 01:33, , 3F
show 的 URI 應該是這樣 localhost:3000/event/{:id}
04/29 01:33, 3F

04/29 01:37, , 4F
而你params[:id]沒東西, 所以爆炸了
04/29 01:37, 4F

04/29 01:38, , 5F
^events/{:id}
04/29 01:38, 5F

04/29 07:06, , 6F
params[:id]沒東西是指在DB中找不到資料嗎?
04/29 07:06, 6F

04/29 07:06, , 7F
不過在我改成RESTful之前都可以正常顯示
04/29 07:06, 7F
※ 編輯: castle146 (120.119.192.7), 04/29/2015 07:07:46

04/29 07:57, , 8F
是show需要id來去DB找,他從URI去拿到ID,但是你連錯
04/29 07:57, 8F

04/29 07:57, , 9F
你應該要用像是localhost:3000/events/1這樣去找
04/29 07:57, 9F

04/29 07:57, , 10F
這樣她會去找id為1的event
04/29 07:57, 10F

04/29 07:58, , 11F
再改成RESTful前可以work是因為他不是從URI上去找
04/29 07:58, 11F

04/29 14:17, , 12F
你的routes.rb打錯字了: 是 resources :events
04/29 14:17, 12F

04/29 14:18, , 13F
你應該打錯成 resource :events 了
04/29 14:18, 13F

04/29 20:16, , 14F
真的打錯了,有點丟臉 囧
04/29 20:16, 14F

04/29 20:18, , 15F
我太粗心了,謝謝大家費心看我的問題以及講解!
04/29 20:18, 15F
文章代碼(AID): #1LFv6Kg- (Ruby)
文章代碼(AID): #1LFv6Kg- (Ruby)