2014-02-25 20 views
4

我想知道不同的位置,纔有可能不同的圖像版本存儲到不同的位置。存儲不同版本的圖像與Carrierwave

比方說,我有這樣定義的一些私人Carrierwave文件夾:

def store_dir 
    "#{Rails.root}/private/uploads/" 
end 

和一對夫婦上傳的圖片版本:

version :medium do 
    process :resize_to_limit => [400, 400] 
end 

version :large do 
    process :resize_to_limit => [800, 800] 
    end 

version :thumb do 
    process :resize_to_limit => [200, 200] 
end 

我想用來存儲上傳的圖片,媒體版和大版本中定義store_path,但希望能有可用的存儲公用文件夾在用戶拇指的版本,例如是默認的公共文件夾中的形象的:

def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
end 

我怎樣才能做到呢?謝謝!

回答

2

在舊版本我已經使用了VERSION_NAME carrierwave的,我不知道現在的工作

def store_dir 
    if version_name != 'thumb' 
    # path for other versions 
    else 
    # path for thumb version 
    end 
end 
2

你只需要重寫store_dirversion塊內。因此,對於你的榜樣,

version :medium do 
    process :resize_to_limit => [400, 400] 
end 

version :large do 
    process :resize_to_limit => [800, 800] 
end 

version :thumb do 
    process :resize_to_limit => [200, 200] 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 
end 
相關問題