views:

25

answers:

2
<% remote_form_for(@media, :url => url_for(:controller => :attachments,
                :action => :add_from_disk, :object_id => @object),
                :html => { :multipart => true, :id => 'new_media', :onsubmit=>'unsaved_changes = false' } ) do |f| %>

but if I change the remote_form_for to form_for, I don't get this error:

ActiveRecord::RecordInvalid (Validation failed: Document file name must be set.):

Why would it work with form_for, but not the AJAX version?

+1  A: 

You can't upload a file using AJAX.... You'll need to implement a flash uploader to send files in the background. It's not pretty, but Uploadify is pretty cool

Recommend keeping file uploading as regular form for.

Jesse Wolgamott
A: 

Or you can use the jQuery form plugin, which works great. In this case you'd do a normal form_for, and inside of your javascript file (once you've included jquery and the jQForm lib in your html) you'd do something like this:

$(function() { 
  $("#myFormDomID").ajaxForm({ iFrame : true }); 

});

ohokay