当用 jquery 和 rails(在 4.0.4 测试)替换 html 时,以下工作:
replace.js.erb 的内容
$('#my_div').html("<%= j(render 'my_partial') %>");
_my_partial.html.erb 的内容
"This" works
<%= '"This" also works' %>
但是,当使用 remotipart gem (1.2.1) 为响应 ajax 文件提交而呈现 replace.js.erb 时,它会失败,如下所示。
create.html.erb 的内容
<%= form_for @my_model, :html => {:remote => true} do |f| %>
<%= f.file_field :some_file %>
<%= f.submit %>
<% end %>
它会在浏览器中导致以下 javascript 错误,因为引号未正确转义。
SyntaxError:意外的标识符
服务器响应:$('#my_div').html("\"This\" works\n"This" failed\n");
请注意,如果我在未选择文件的情况下提交,则不会发生 javascript 错误并且它会正确重新呈现。未选择文件时,似乎未调用 remotipart,可能是因为不需要多部分表单。