2017-02-28 48 views
0

Carrierwave緩存Azure存儲信息並將文件上傳到錯誤的容器。停止緩存存儲信息中的Carrierwave

例如,如果我上傳圖像到容器「a」,然後嘗試上傳圖像到容器「b」,它仍會上傳到容器「a」。我假設Carrierwave正在緩存存儲信息,而不是設置每個上傳的容器信息。我如何阻止它這樣做?

class FileUploader < CarrierWave::Uploader::Base 

storage :azure 

def initialize(*) 
super 
    CarrierWave.configure do |config| 
    config.azure_storage_account_name = account_name 
    config.azure_storage_access_key = storage_key 
    config.azure_container = model.container_name 
    end 
end 

我也嘗試重新初始化每個上傳的上傳器,但我仍然有同樣的問題。

uploader = FileUploader.new 
uploader.store!(file) 

回答

0

想通了。而不是將配置屬性分配給CarrierWave,而是將它們分配給初始化的上傳器對象。

def initialize(*) 
    super 
    self.azure_storage_account_name = account_name 
    self.azure_storage_access_key = storage_key 
    self.azure_container = model.container_name 
end