2015-04-06 34 views
2

兩個模型共享相同的Carrierwave上傳類。Carrierwave的多個默認圖像

Carrierwave作爲default_url方法。我怎樣才能讓它根據調用它的類返回不同的結果? e.g:

class PhotoUploader < CarrierWave::Uploader::Base 


def default_url 
    return "https://www.example.com" + ActionController::Base.helpers.asset_url("main/profile/user_2.png") if CONDITION   
    "https://www.example.com" + ActionController::Base.helpers.asset_url("main/profile/user.png") 
end 
+1

爲什麼不使用2個不同的上傳者?我想你首先只使用了一個Uploader,因爲兩個模型共享相似之處。在你的情況下,現在,他們沒有相似之處,他們是「不同的」,那麼爲什麼要爲兩個需要特定處理的不同模型執行相同的代碼呢? – MrYoshiji

回答

3

你可以調用模型和所有你需要例如方法:model.class.name

def default_url 
    return "https://www.example.com" + ActionController::Base.helpers.asset_url("main/profile/user_2.png") if model.class.name == "User"   
    "https://www.example.com" + ActionController::Base.helpers.asset_url("main/profile/user.png") 
end