【发布时间】:2014-06-24 16:52:30
【问题描述】:
我有一个 rails 4 应用程序,我在其中使用 jQuery File Upload 向 Carrierwave 发送请求。我的代码如下:
<input name='photo[image]' type='file' data-url='photos/create' multiple="true" class='fileupload'/>
和我的 jquery:
$('.fileupload').fileupload({
dataType: 'json',
done: function (e, data) {
$.each(data.result.files, function (index, file) {
alert(file.name);
});
}
});
以及我在照片控制器中的创建操作:
def create
@photo = Photo.new(photo_params)
respond_to do |format|
if @photo.save
format.json { render json: @photo }
else
format.json { render json: @photo.errors, status: :unprocessable_entity }
end
end
end
private
def photo_params
params.require(:photo).permit!
end
和我的照片模型:
class Photo < ActiveRecord::Base
mount_uploader :image, ImageUploader
end
当我创建照片时,carrierwave 正在正确创建图像(在 public/uploads 目录中),但由于某种原因,我的 jQuery 出现了错误:
Uncaught TypeError: Cannot read property 'length' of undefined
我不确定是什么原因造成的?
【问题讨论】:
-
你的web进程是否有足够的权限来写文件?
-
是的,我以前可以使用同一个网络应用上传照片。
-
您的网络服务器日志和/或 Rails 日志是否显示文件传输开始、进行、中断或完成?
-
只发布此操作失败的服务器日志。
-
看起来你完成的回调有问题尝试将返回的数据记录到控制台并向我们显示输出
标签: javascript jquery ruby-on-rails ruby file