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灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP