提问人:JstRoRR 提问时间:4/30/2014 更新时间:4/30/2014 访问量:507
在 Rails 3.2.13 中调用 ajax 后不渲染操作模板
Action template not rendering after an ajax call in Rails 3.2.13
问:
我想通过从浏览器传递一些数据(一些文本值作为字符串)来执行 ajax 请求,并呈现我使用 ajax 向其发送请求的相同操作的视图。
我的工作流程是这样的:
用户上传两个文件 :calib 和 :inten。
应用程序使用回形针保存文件并解析不同实例变量中的信息。
- 解析文件后,应用程序会以 in create 操作的形式传递消息,并立即将 pr list 作为浏览器中的下拉列表提供给用户。
flash[:notice]
有两个部分,它们在创建操作中呈现。
_form
_formTwo
当我执行ajax请求时,我处于创建视图中,并且我正在请求控制器中命名的其他操作。
norm
- 在ajax调用之后,我希望应用程序在不刷新页面的情况下呈现。
norm.html.erb
我尝试使用不显眼的javascript使用ajax,但我不知道如何使用link_to或button_to助手传递一些数据(如上所述)。
使用简单的jquery ajax,我可以将数据传递到服务器,但我的页面没有呈现。开发日志显示 Page 已呈现,但浏览器页面中没有任何更改。我知道我错过了什么,但无法弄清楚??
开发日志输出:
Started POST "/normalize" for 127.0.0.1 at 2014-04-30 13:38:43 +0200
Processing by UploadsController#normalize as */*
Parameters: {"data"=>"17,Poly-T-CY5,EukS_1209_25_dT"}
Upload Load (0.1ms) SELECT `uploads`.* FROM `uploads` WHERE `uploads`.`id` = 17 LIMIT 1
Rendered uploads/_normalize.html.erb (0.2ms)
Rendered uploads/normalize.js.erb (1.0ms)
Completed 200 OK in 4ms (Views: 2.1ms | ActiveRecord: 0.1ms)
我希望我已经很好地解释了我的问题,如果我没有说清楚,请告诉我??
答:
0赞
kempchee
4/30/2014
#1
Link_to允许您按如下方式传递data_hash:
<%=link_to("Link",link_path,:data=>{foo:"bar",hello:"goodbye"},remote:true)%>
查看您的代码,另一个问题是“norm.html.erb”文件不是部分文件。为了从“norm.js.erb”渲染它,您需要将其重命名为“_norm.html.erb”,以便 rails 将其识别为部分。
评论
0赞
JstRoRR
4/30/2014
谢谢你的解释......但我在我的代码中发现了一个主要问题,那就是我的 ajax 调用中的 dataType: 'string',它应该是 dataType: 'script'。我改变了它,一切正常。:)
评论