简体   繁体   English

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

[英]Uploading files using remote:true and remotipart + carrierwave gems

I want to make remote file upload via remotipart + carrierwave.我想通过 remotipart +carrierwave 进行远程文件上传。 The problem is that my upload works, but it seems that it is uploaded as usual html.问题是我的上传有效,但似乎是像往常一样上传html。 Or it is uploaded via ajax, but appropriate js file is not called.或者它是通过ajax上传的,但没有调用相应的js文件。 I have a form_for with remote:true, and a corrseponding controller method create.我有一个带有 remote:true 的 form_for,以及一个相应的控制器方法创建。 Since the form is submitted as js, create.js.erb is used.由于表单是作为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 %>

Logs show this:日志显示:

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

It is kinda strange that error_messages are rendered earlier that create.js.erb, error_messages are being rendered inside create.js.erb.有点奇怪的是,error_messages 比 create.js.erb 更早呈现,而 error_messages 正在 create.js.erb 中呈现。

I resolved this problem by adding this if:我通过添加以下内容解决了这个问题:

 <% if remotipart_submitted? %> <% else %> <% end %>
don't know why it didn't work without it. 不知道为什么没有它就不能工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM