我正在使用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
问题是,当我尝试上传第二轮照片时,我收到上面写的错误。它甚至没有击中控制器...... 这个错误是什么意思?任何帮助将不胜感激! 感谢
答案 0 :(得分:4)
深入研究Rack代码并对其了解很少之后,我决定做出改变:
name = "photos[]"
到name="photos"
(在file_field输入中),现在一切正常!
不确定为什么......但这是我的解决方案