2012-04-23 18 views
14

kaydetmeden önce dosyayı yeniden adlandırmak:Paperclip - Ben tasarruf önce resmi yeniden adlandırılması için bu yöntemi kullanmak

def rename_avatar 
    self.avatar.instance_write :file_name, Time.now.to_i.to_s 
    end 

    before_post_process :rename_avatar 

görüntü şimdiki zaman yeniden adlandırılır, ancak bunun yerine 1334487964 arasında, dosya türünü orada eklendi değil. jpg yalnızca 1334487964 numaralı telefondan kaydedilmiştir..

Orada neyi özlüyorum? Ben düşündüm: dosya_adı yalnızca dosya adını içerir - dosya türü

cevap

22

Bu benim sorunu gidermek nasıl yoludur olmadan: Paperclipinterpolates kullanılmasını önerir yana

def rename_avatar 
    #avatar_file_name - important is the first word - avatar - depends on your column in DB table 
    extension = File.extname(avatar_file_name).downcase 
    self.avatar.instance_write :file_name, "#{Time.now.to_i.to_s}#{extension}" 
    end 
+0

Bu çözüm, kayıt düzenliyor olmanız dışında, tamam çalışır. Benim durumumda, 3 ekleri, fotoğraf, certificate1, certificate2 var, eğer ben fotoğraf değiştirirsem, rutin tekrar "before_post" 'a gittiği zaman DB'ye yeni ve inexisting bir dosya adı yazdığı için sertifikaları tekrar yüklemem gerekiyor. Bunun için bir çözüm var mı? Teşekkürler! ;) – drmwndr

İlgili konular