使用 remote:true 和 remotipart + carrierwave gems 上传文件

Uploading files using remote:true and remotipart + carrierwave gems

我想通过remotipart + carrierwave做远程文件上传。问题是我的上传有效,但似乎是照常上传html。或者通过ajax上传,但是没有调用相应的js文件。 我有一个 form_for 和 remote:true,以及一个相应的控制器方法创建。由于表单是作为js提交的,所以使用了create.js.erb。

<% if @syllabus.errors.present? %>
  $('#syllabus-errors').html('<%= escape_javascript(render 'layouts/error_messages', object: @syllabus)   %>');

<% else %>
  alert("ds");
  $('#modal-body').html(<%= escape_javascript(render 'layouts/thanks')   %>);
  $('#syllabus-errors').html("");
<% end %>

日志显示:

 (0.1ms)  begin transaction
   (0.1ms)  rollback transaction
  Rendered layouts/_error_messages.html.erb (1.0ms)
  Rendered syllabuses/create.js.erb (12.0ms)

有点奇怪 error_messages 比 create.js.erb 渲染得更早,error_messages 在 create.js.erb 中渲染。

我通过添加这个解决了这个问题,如果:

<% if remotipart_submitted? %>

<% else %>

<% end %>
不知道为什么没有它就不能工作。