2011-12-03 3 views
2

私は​​を使用しようとしていますが、私は一意のファイル名を作成するためにwikiのメソッドを使用しています。問題は、recreate_versions!を実行するとファイル名が変更されますが、マウントされたオブジェクト自体には更新されません。どのようにこれらのURLをリフレッシュできますか?recreate_versions! wikiに記載されている一意のファイル名の方法を使用してください

答えて

3

ここは私のために働いたものです。すでに存在する場合、ファイル名を使用します。だから、彼らはあなたが復活する時に変わらない!

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! 

バージョンを再作成するときにも、ユニークなファイル名を使用し続けることができますこの方法キャッシングを適切に処理します。