在AJAX响应中使用js.haml渲染部分

时间:2011-06-13 16:28:27

标签: jquery ajax ruby-on-rails-3 haml partial-views

我在通过AJAX渲染响应方面遇到了麻烦。

以下是我的.js.haml视图的样子:

:plain
  $("#cart").replaceWith("#{escape_javascript(render 'carts/cart')}");

部分HTML代码呈现错误并破坏HTML布局。在Safari的网络检查员中,我得到了以下XHR响应:

  

$("#cart")。replaceWith(" your orderh2>

我很清楚,HTML代码已损坏:h2标签未正确关闭,属性值未包含在括号中等。

被替换为此类响应的页面的一部分将被破坏。

我还尝试过其他一些技巧,比如:

!= "$('#cart').replaceWith('#{escape_javascript(render 'carts/cart')}');"

结果是一样的。

然而,简单的情况,如

:plain
  $("#cart").replaceWith("<p>Test</p>");

工作正常。

问题在于渲染部分。

PS:这部分是100%正确的,因为它是由常规页面渲染使用的。

这里有什么不妥。

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了原因。由于在{Rails 3.0.8中找到bug,escape_javascript函数工作不正确。