【问题标题】:Action template not rendering after an ajax call in Rails 3.2.13在 Rails 3.2.13 中调用 ajax 后,操作模板未呈现
【发布时间】:2014-06-16 18:37:25
【问题描述】:

我想通过从浏览器传递一些数据(一些文本值作为字符串)来执行 ajax 请求,并呈现我使用 ajax 向其发送请求的同一操作的视图。

我的工作流程是这样的:

  1. 用户上传两个文件:calib 和 :inten。

  2. app 使用回形针保存文件并解析不同实例变量中的信息。

  3. 一旦文件被解析,应用程序会在创建操作中以flash[:notice] 的形式传递消息,并立即将 pr 列表作为浏览器中的下拉列表提供给用户。
  4. 有两个部分 _form_formTwo 在创建操作中呈现。

  5. 当我执行 ajax 请求时,我处于创建视图中,并且我正在请求控制器中名为 norm 的其他操作。

  6. 在 ajax 调用之后,我希望应用在不刷新页面的情况下呈现 norm.html.erb

我的代码在这里:http://pastie.org/private/keykmwbzcrv04dfvkufsew

我尝试使用不显眼的 javascript 进行 ajax,但我不知道如何使用 link_to 或 button_to 助手传递一些数据(如上所述)。

使用简单的 jquery ajax,我可以将数据传递到服务器,但我的页面没有呈现。开发日志显示页面已呈现,但浏览器页面没有任何变化。我知道我遗漏了一些东西,但无法弄清楚??

开发日志输出:

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)

希望我已经很好地解释了我的问题,如果我没有说清楚,请告诉我??

【问题讨论】:

    标签: jquery ruby ruby-on-rails-3 unobtrusive-javascript unobtrusive-ajax


    【解决方案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 将其识别为部分。

    【讨论】:

    • 感谢解释......但我在我的代码中发现了一个主要问题,那就是我的 ajax 调用中的 dataType: 'string' 应该是 dataType: 'script'。我改变了它,一切都很好。 :)
    猜你喜欢
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 2012-02-21
    • 2014-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    相关资源
    最近更新 更多