我使用carrierwave和jquery fileupload來上傳聲音文件。 我更改了緩存目錄,但我不明白它爲什麼會創建兩次。 這裏我sound_uploader.rb:Carrierwave兩個緩存文件
# encoding: utf-8
require 'carrierwave/processing/mime_types'
class SoundUploader < CarrierWave::Uploader::Base
store :file
after :cache, :after_cache
before :store, :before_store
after :store, :after_store
def after_cache(file)
puts 'AFTER CACHE'
end
def before_store(file)
puts 'BEFORE STORE'
end
def after_store(file)
puts 'AFTER STORE'
end
def cache_dir
"#{Rails.root}/tmp/uploads"
end
def store_dir
"#{Rails.root}/uploads/files/#{model.user_id}/#{model.id}"
end
end
它返回在我的控制檯:
AFTER CACHE
AFTER CACHE
BEFORE STORE
AFTER STORE
再加上它創建了不同的cache_id二級緩存文件夾,我不能刪除第一個緩存文件。
編輯:我把我的SoundController
def create
puts 'HELLO WORLD!'
...
end
,我發現結果是:
AFTER CACHE
HELLO WORLD!
AFTER CACHE
BEFORE STORE
AFTER STORE
這意味着它付諸緩存我的文件之前,實際上創造了我的聲音。 我仍然沒有得到原因,但它可能是解決我的問題的線索。