2011-12-03 13 views

回答

3

這是什麼爲我工作。它使用文件名,如果它已經存在。所以他們不會改變,當你recreate_versions!

def filename 
    if original_filename 
    if model && model.read_attribute(:avatar).present? #or whatever you call your column 
     model.read_attribute(:avatar) 
    else 
     # create new filename however you're doing it 
    end 
    end 
end 
+0

問題是,唯一的文件名通常是用來處理文件緩存的,這樣做在執行recreate_versions時仍然會指向相同的URL!並因此返回緩存的值而不是新的值。 –

9

與緩存打交道時,一個可行的解決方案是保存搭載物再造版本後:

例子:

avatar.image.recreate_versions! 
avatar.save! 

這樣重建的版本時,你可以繼續使用唯一的文件名,甚至並妥善處理緩存。