带有JQuery fileupload的Rails给出了预期的Array(得到了Rack :: Utils :: KeySpaceConstrainedParams

时间:2013-12-02 15:07:51

标签: jquery ruby-on-rails file-upload rack

我正在使用jQuery fileupload在Rails中执行ajax文件上传。第一次上传工作正常,但是当我尝试连续上传时,我收到服务器错误说:

 Unexpected error while processing request: expected Array (gotRack::Utils::KeySpaceConstrainedParams) for param `photos'
/home/uriklar/.rvm/gems/ruby-1.9.3-p448/gems/rack-1.4.5/lib/rack/utils.rb:114:in `normalize_params'

这是我上传过程的工作方式: 在公寓表格中,我有一个嵌套的照片表格

= f.simple_fields_for Photo.new do |photo|
  = photo.file_field :photo, label: false, class: 'photo_upload_input', multiple: true, name: "photos[]", data: {url: '/apartments/'+@apartment.id.to_s+'/photos/new'}

并在我的javascript中:

$('.photo_upload_input').fileupload();

第一个文件上传会将我发送到正确的操作(照片#更新)并正确保存照片。它甚至适用于多个文件..它分别为每个文件调用操作。

    def update
     @apartment = Apartment.find(params[:apartment_id])
     @photo = @apartment.photos.create(photo: params[:photos][0])
   end

问题是,当我尝试上传第二轮照片时,我收到上面写的错误。它甚至没有击中控制器...... 这个错误是什么意思?任何帮助将不胜感激! 感谢

1 个答案:

答案 0 :(得分:4)

深入研究Rack代码并对其了解很少之后,我决定做出改变: name = "photos[]"name="photos"(在file_field输入中),现在一切正常! 不确定为什么......但这是我的解决方案