new.js.erb 未被 ajax 调用 Rails 4.2 激发

new.js.erb not fired up by ajax call in Rails 4.2

这是响应 name 字段更改的 ajax 调用。 ajax 调用最终会启动 new.js.erb 以填充当前页面上的一些字段:

$(function (){
    $(document).on('change', "[id^='order_order_items_attributes'][id$='_name']", function (){
    $.get(window.location, $('form').serialize(), null);
    return false;
  });
});

从 3.2 升级到 Rails 4.2 后,name 更改后 new.js.erb 不再执行。在调试中,$(function(){...}) 正常执行,但 new.js.erb 未执行。我们的升级缺少什么?

我认为您需要在 $.get 调用中将数据类型指定为 'script'。如果它默认为 HTML 那么它将不会加载 JS 文件。

$.get(window.location, $('form').serialize(), null, 'script');