Ruby on Rails:form_for有效,但remote_form_for没有

时间:2010-07-30 15:02:43

标签: ruby-on-rails

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

但如果我将remote_form_for更改为form_for,我不会收到此错误:

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

为什么它适用于form_for,而不适用于AJAX版本?

2 个答案:

答案 0 :(得分:1)

您无法使用AJAX上传文件....您需要实施Flash上​​传器才能在后台发送文件。它不漂亮,但Uploadify很酷

建议将文件上传保存为常规表格。

答案 1 :(得分:0)

或者您可以使用jQuery form plugin,效果很好。在这种情况下,你会做一个普通的form_for,并在你的javascript文件中(一旦你在你的html中包含了jquery和jQForm lib),你就会做这样的事情:

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

});