我遇到S3和CarrierWave的问题: 我有一个上传数据和文件的伪表单,我写了“伪”,因为它是一个ajax表单,因此数据通过jquery发送到带有POST请求的rails。文件无法以这种方式上传...所以我有一个弹出窗口将文件上传到rails,我在会话中保存对上传文件的引用,当ajax请求上传其余表单时,我链接上传的文件其余的数据。
使用存储:文件工作没有任何问题,当我收到我做的文件时:
uploader = ImgObjUploader.new
uploader.store!(params[:image_form][:image])
session["image"] = uploader.url
然后当我得到剩下的数据时:
if (session[:image] != nil) then
obj.image = File.open(session[:image])
end
我的模特是:
mount_uploader :image, ImgObjUploader
此代码工作没有任何问题,对于amazon s3我切换到:
uploader = ImgObjUploader.new
uploader.retrieve_from_store!(session[:image])
puts uploader
#obj.image = uploader
obj.image = uploader.url
但它不起作用...我没有收到错误但我没有将图像保存在obj对象中。上传者打印亚马逊S3的网址。
任何人都可以帮助我?
谢谢。