我有一個Image
模型,需要我設置一些數據才能保存圖像,因爲我決定將圖像上傳到哪裏以及如何命名取決於模型中的一些數據。現在我正在嘗試:CarrierWave添加ActionDispatch :: Http :: UploadedFile模型處理後
# ImagesController sets up data
img = Image.new
img.imageable = user
phashion_img = Phashion::Image.new(file.path)
img.image_hash = phashion_img.fingerprint.to_s
img.batch = img.latest_batch + 1
img.extension = 'jpg'
img.height = 640
img.width = 640
# ImageUploader uses it
version :original do
def full_filename
"#{model.image_hash}/orig/#{alnum_encode(model.imageable.id)}.#{model.extension}"
end
end
我遇到了一個問題,試圖將上傳的圖像傳遞到上傳器。
img.uploader.store! file
給我的錯誤wrong number of arguments (1 for 0)
img.uploader.store! file.tempfile
給我You are not allowed to upload "" files, allowed types: jpg, jpeg, gif, png
僅供參考,file
是:
#<ActionDispatch::Http::UploadedFile:0x00000109ccdb70 @tempfile=#<Tempfile:/var/folders/lx/xk8vzr4s0fdd_m5w0syftfl80000gn/T/RackMultipart20140723-28731-1b5weu8>, @original_filename="20140522_164844.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user[images_attributes][0][uploader]\"; filename=\"20140522_164844.jpg\"\r\nContent-Type: image/jpeg\r\n">
這將使file.tempfile:
#<Tempfile:/var/folders/lx/xk8vzr4s0fdd_m5w0syftfl80000gn/T/RackMultipart20140723-28731-1b5weu8>
有什麼辦法我可以通過這些對象之一,ActionDispatch::Http::UploadedFile
或Tempfile
,轉發給Carrierwave上傳器?我可以對他們做一些轉變,以便上傳者可以接受他們中的一個?