ruby-on-railscarrierwavejquery-fileupload-railsremotipart

Uploading files using remote:true and remotipart + carrierwave gems


I want to make remote file upload via remotipart + carrierwave. The problem is that my upload works, but it seems that it is uploaded as usual html. Or it is uploaded via ajax, but appropriate js file is not called. I have a form_for with remote:true, and a corrseponding controller method create. Since the form is submitted as js, create.js.erb is used.

<% 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.


Solution

  • I resolved this problem by adding this if:

    <% if remotipart_submitted? %>
    
    <% else %>
    
    <% end %>
    don't know why it didn't work without it.