Ruby 板


LINE

看不懂$ajax的寫法,所以用rails內建的方式使用 卻不知道哪裡出問題,看terminal也有顯示有傳正確的id進去,卻無法更改.. 照著這個影片實作的 http://happycasts.net/episodes/66 我先說明一下我的流程,就是首頁顯示所有Toy的列表, 首頁最後有個render顯示當前current的toy (c_toy) 而會依照點選的toy.name改變最下面的current.toy的id跟name 而黃色是我覺得有出問題的地方... ==toys_controller.rb //params有id就設為該id 無則使用第一個 def index @toys = Toy.all if params[:toy_id] @c_toy = Toy.find(params[:toy_id]) else @c_toy = Toy.first end respond_to do |format| format.html fotmat.js end end ==index.html.erb (部分) 產生一整排連結,最後render <% toys.each do |toy| %> <% link_to toy.name , toy , :remote => true %> <% end %> <%=render 'ida' , :c_toy => @c_toy %> ==index.js.erb //用於replace render $('.ida').replaceWith('j <%=render 'ida',:c_toy => @c_toy %>') ==_ida.html.erb //顯示當前toy的id 及name <div class="ida"> <%= @c_toy.id %> <%= @c_toy.name %> </div> 照理來說應該是會成功,隨著我按哪個toy的名字下面就會render toy的名字出現 但是目前的情況就是,他卡在第一個toy,也就是controller第一次設定之後 後面就抓不到丟進去的id了... 請板上的高手解惑一下,拜託了...謝謝... --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.46.128
1F:推 hellolucky:還沒認真看過 但<%render 'ida',:c_toy => @c_toy %> 12/15 23:56
2F:→ hellolucky:是不是少了個等於? 12/15 23:56
抱歉...看著另一個螢幕用手打竟然漏打了...以修正,謝謝!
3F:→ lTERRAl:$('ida') 你是要? 12/16 00:53
4F:→ Vinn:$('.ida')replaceWith應該是用來換掉舊的資料以呈現變化 12/16 08:40
5F:→ Vinn:阿...影片上是這樣要教...該不會我有理解錯誤吧? 12/16 08:49
6F:推 johnlinvc:應該是$('.ida').replaceWith('foo') ? 12/16 11:46
謝謝指正,但修改後仍是無法動作.. 以下是我點選之後 terminal出現的訊息 Started GET "/toys/45" for 127.0.0.1 at 2013-12-16 12:52:05 +0800 Processing by ToysController#show as JS Parameters: {"id"=>"45"} Toy Load (0.6ms) SELECT "toys".* FROM "toys" WHERE "toys"."id" = $1 LIMIT 1 [["id", "45"]] Rendered toys/show.html.erb within layouts/application (0.5ms) Completed 200 OK in 18ms (Views: 15.7ms | ActiveRecord: 0.6ms) parameters 有取得到id,但無法更改ˊˋ
7F:推 johnlinvc:把你的index.js.erb 改名成 show.js.erb 12/16 13:04
8F:→ johnlinvc:toys_controler 裡的 show 也 respond to js 12/16 13:05
9F:→ johnlinvc:因為你的route 和那個教學的不一樣 12/16 13:05
感謝,但是他卻跑出很神秘的找不到"id" Started GET "/toys/45" for 127.0.0.1 at 2013-12-16 14:26:01 +0800 Processing by ToysController#show as JS Parameters: {"id"=>"45"} Toy Load (0.6ms) SELECT "toys".* FROM "toys" WHERE "toys"."id" = $1 LIMIT 1 [["id", "45"]] Rendered toys/_ida.html.erb (1.4ms) Rendered toys/show.js.erb (3.7ms) Completed 500 Internal Server Error in 11ms ActionView::Template::Error (undefined method `id' for nil:NilClass): 1: <div class="ida"> 2: <%= @c_toy.id %> 3: <%= @c_toy.name %> 3: </div> app/views/revos/_ida.html.erb:2: in `_app_views_toys__ida_html_erb__1527320142082688770_70320262549140' app/views/revos/show.js.erb:2: in `_app_views_toys_show_js_erb__3810931547537904217_70320251433280' app/controllers/toys_controller.rb:29:in `show' 改程式改到頭有點暈...感謝板上高手...初學者真的有點糟,沒想到Ajax這麼難實現
10F:推 johnlinvc:應該是你show method 裡的 toy 不是 @c_toy 12/16 15:40
11F:→ johnlinvc:下次可以考慮直接丟github 再上來問 12/16 15:41
馬上來,https://github.com/viflin/tezarail 進入 http://localhost:3000/toys 就有三個toy,和最下面有問題的顯示地方 應該要點選列表上的“Obama” 然後下面一開始預設的Boozer就會變成Obama... 感謝......
12F:推 hellolucky:照錯誤訊息 你request的是 ToysController#show 12/16 17:13
13F:→ hellolucky:不過ToysController#show 只有@toy 沒有@c_toy 12/16 17:13
14F:→ hellolucky:所以view找不到@c_toy 12/16 17:14
15F:→ hellolucky:我覺得不是Ajax難實現,而是要先學會抽絲剝繭的debug 12/16 17:15
16F:→ hellolucky:釐清問題點所在,慢慢的你會發現其實一切都有條理 12/16 17:15
17F:推 johnlinvc:一開始就學rails remote ajax 本來就比較有難度 12/16 17:26
18F:→ johnlinvc:可以先去搞懂底下的jquery 在做什麼, 還有partial的用法 12/16 17:27
19F:→ johnlinvc:我發merge request 給你了:p 12/16 17:27
謝謝!已經merge了! 感謝解惑! 困擾了我好久== 初學者真的太多東西不懂...rails真的頗困難(對於只寫過簡單html的我來說...) 而且不像IDE之類的會告訴你哪裡錯了... 慢慢在研究到底他背後怎麼傳遞的...不知道用$ajax的那種寫法是怎麼處理XD 謝謝johnlinvc ,hellolucky 跟|TERRA|板友,感謝你們 ※ 編輯: Vinn 來自: 61.230.45.210 (12/16 19:37)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP